我正在尝试使用存储在表中的语句创建表。我正在使用带有执行(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 State="34000"
第一个表 (tab1) 将创建,但其他 (tab2, tab3) 表不会。
如果我用 select sql 替换语句 execute(sql),脚本将正常工作。
提前感谢您的回答。
PX