当前位置:首页 » 存储配置 » 存储过程中创建表

存储过程中创建表

发布时间: 2022-07-20 21:08:34

sql 存储过程创建表的问题!

把创建语句拼成字符串 存储过程中用exec去执行创建

⑵ mysql 在存储过程中创建表格

DELIMITER$$
USE`test`$$
DROPPROCEDUREIFEXISTS`p_create_table`$$
CREATEDEFINER=`root`@`localhost`PROCEDURE`p_create_table`()
BEGIN
DECLAREtableNameVARCHAR(100);
DECLAREtable_nameVARCHAR(100);
DECLAREmonthIntINTDEFAULT1;
DECLAREmonthStrVARCHAR(16);
DECLAREtableHeaderVARCHAR(16);
DECLAREtableBodyVARCHAR(255);
DECLAREdropTableStrVARCHAR(255);
DECLAREsqlStrVARCHAR(1000);
SETtableName=CONCAT('test_',DATE_FORMAT(NOW(),'%Y'));
SETtableHeader='CREATETABLE';
SETtableBody='(`id`INT(11)NOTNULLAUTO_INCREMENT,`name`VARCHAR(10),PRIMARYKEY(`id`))ENGINE=INNODBDEFAULTCHARSET=utf8;';
WHILEmonthInt<=12DO
IFmonthInt<10THEN
SETmonthStr=CONCAT('0',monthInt);
ELSE
SETmonthStr=CONCAT(monthInt);
ENDIF;
SETtable_name=CONCAT(tableName,monthStr);
SETdropTableStr=CONCAT('DROPTABLEIFEXISTS',table_name);
SETsqlStr=CONCAT(tableHeader,table_name,tableBody);
SELECTdropTableStrINTO@dropTableStr;
SELECTsqlStrINTO@sqlStr;
BEGIN
PREPAREstepDropExistTableFROM@dropTableStr;
EXECUTEstepDropExistTable;
PREPAREstepCreateTbaleFROM@sqlStr;
EXECUTEstepCreateTbale;
END;
SETmonthInt=monthInt+1;
ENDWHILE;
END$$
DELIMITER;

⑶ 如何用存储过程动态创建SQL Server 数据表

你指的是动态创建临时表吧?可以使用如下的方法(例如):CREATE
TABLE
#MyTempTable
(cola
INT
PRIMARY
KEY)INSERT
INTO
#MyTempTable
VALUES
(1)在表名前面加"#"表示创建临时表,在程序结束后会自动删除临时表,而且每个客户端实际不是使用同一个临时表,而且,在程序结束后会自动释放临时表。我想你要的应该是这个,对吗?

⑷ oracle存储过程创建表

CREATE OR REPLACE PROCEDURE list_xs_name as
str_sql varchar2(2000);
begin
str_sql := 'create global temporary table xs_name (xh int,name varchar2(255),kc varchar2(255),fs int) on commit preserve rows';
execute immediate str_sql;
str_sql := 'select * from xs_name';
execute immediate str_sql;
dbms_output.put_line(str_sql);
END;

⑸ SQL server 存储过程动态创建表 不知如何着手

既然是生成新表,你可以定义一个参加拼凑sql语句,游标抓出proName的值,作为表名,sql_str = 'create table '+表名+'(colname varchar(100))',然后游标抓出txtLog的值,作为表里的值,这时候sql_str+='insert into 表名 values('+txtLog的值+')'

⑹ 关于在存储过程中建立临时表

你试过了吗?
这样建是允许的!!不过这样建的表属于本地临时表。当存储过程完成时,将自动删除在存储过程中创建的本地临时表。
可能是被删了你没看到
--------
CREATE
PROCEDURE
dbo.Test2
AS
CREATE
TABLE
#t(x
INT
PRIMARY
KEY);
INSERT
INTO
#t
VALUES
(2);
SELECT
Test2Col
=
x
FROM
#t;
GO
CREATE
PROCEDURE
dbo.Test1
AS
CREATE
TABLE
#t(x
INT
PRIMARY
KEY);
INSERT
INTO
#t
VALUES
(1);
SELECT
Test1Col
=
x
FROM
#t;
EXEC
Test2;
GO
CREATE
TABLE
#t(x
INT
PRIMARY
KEY);
INSERT
INTO
#t
VALUES
(99);
GO
EXEC
Test1;
GO
这是个例子你可以运行了看看结果!!

⑺ oracle 怎么在存储过程中创建一个临时表,在里面插入数据,再查找这个临时表的所有数据,最后drop这个表。

Oracle
的临时表的
处理机制,

SQL
Server
的不一样。
假如你的临时表的结构不是每次执行都发生变化的话
那么就是事先
通过
CREATE
GLOBAL
TEMPORARY
TABLE
语句,把临时表建立好。
存储过程里面,就根据需要,
执行
INSERT
/
SELECT
之类的操作就可以了

⑻ oracle存储过程中建表

首先根据需求,想好需要建哪些字段,哪些是主键,建在哪个表空间下,另外字段类型也要考虑好,因为一旦建成表往里面插入数据后,字段类型就不容易更改了
表建成之后,如果数据量很大,应该考虑建立针对某字段的索引。

⑼ 如何在Oracle的存储过程中建表啊

可以在存储过程中使用execute immediate 'sql';子句来创建表,例如Execute Immediate 'create table test(id int)';

热点内容
如何改变vivo手机账户密码 发布:2024-05-19 10:56:07 浏览:376
sql的length函数 发布:2024-05-19 10:55:15 浏览:545
数据库管理系统设计报告 发布:2024-05-19 10:49:50 浏览:684
linux怎么将驱动编译进内核 发布:2024-05-19 10:23:47 浏览:768
c语言读程序题 发布:2024-05-19 10:13:52 浏览:675
新的安卓手机怎么样下载微信 发布:2024-05-19 10:05:06 浏览:879
加9的算法 发布:2024-05-19 10:04:15 浏览:264
新名图配置怎么样 发布:2024-05-19 09:31:30 浏览:95
php获取子节点 发布:2024-05-19 09:21:18 浏览:160
php生成html 发布:2024-05-19 09:20:24 浏览:795