當前位置:首頁 » 存儲配置 » 存儲過程中創建表

存儲過程中創建表

發布時間: 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)';

熱點內容
七七網源碼 發布:2024-05-06 10:27:36 瀏覽:295
shell輸入腳本 發布:2024-05-06 10:19:49 瀏覽:985
通達信自定義板塊在哪個文件夾 發布:2024-05-06 09:56:37 瀏覽:104
在linux搭建mqtt伺服器搭建 發布:2024-05-06 09:52:00 瀏覽:559
windowspython23 發布:2024-05-06 09:27:50 瀏覽:748
編程ug開初 發布:2024-05-06 09:27:48 瀏覽:561
小白源碼論壇 發布:2024-05-06 09:24:56 瀏覽:140
android進程重啟 發布:2024-05-06 09:15:09 瀏覽:98
ie瀏覽器設置默認ftp 發布:2024-05-06 09:14:03 瀏覽:886
邁騰尊貴中控配置怎麼使用 發布:2024-05-06 09:13:28 瀏覽:657