我試圖使用存儲在表中的語句創建表。我使用的是執行(SQL)光標如下:光標未打開
create table tab
(
CreateSql varchar(250)
)
insert into tab values ('create table tab1 (id int)')
insert into tab values ('create table tab2 (id int)')
insert into tab values ('create table tab3 (id int)')
declare cur cursor for
select createsql
from tab
declare @sql varchar(255)
open cur
fetch cur into @sql
while @@SqlStatus = 0
begin
execute(@Sql)
fetch cur into @sql
end
close cur
deallocate cursor cur
如果我運行它會出現一個錯誤:
無法執行的語句。遊標不開SQLCODE = -180,ODBC 3 狀態= 「34000」
第一個表(TAB1)將創建,但其他(TAB2,TAB3)表不。
如果我用select sql替換語句execute(sql),腳本將正常工作。
在此先感謝您的回答。
PX
您知道,我希望您的當前代碼能夠以任意順序運行單個語句,因爲您的遊標定義中沒有ORDER BY。 – 2012-08-15 07:33:52
是的,我知道。沒關係,這只是一個例子。 – Parado 2012-08-15 10:38:52