存储过程中创建表
把创建语句拼成字符串 存储过程中用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)';