0
BEGIN
OPEN DQC_Cursor1 ; 
LOOP

FETCH DQC_Cursor1 INTO @table_name1 ; 
EXIT when DQC_Cursor1%notfound;
EXEC Incorporate @table_name = @table_name1,
    @historical_table_name = Replace(
        @table_name1,
        'Temp',
        'Historical'
    ) ;

END EXEC;
END LOOP;


CLOSE DQC_Cursor1;
commit;
END;

我得到的错误信息如下。我在 ; 附近也得到了不正确的语法,当我将鼠标悬停在带下划线的错误上时,期待对话。我已经写出了包含的存储过程。有人知道这里出了什么问题吗?

Incorrect syntax near 'LOOP'.
Incorrect syntax near the keyword 'EXIT'.
4

1 回答 1

1

我假设Incorporate你有一个存储过程。正如评论所暗示的那样,您对光标语法有些混淆,阅读文档将有很大帮助。但在这种特定情况下,请尝试:

declare @table_name1 varchar(max);

declare DQC_Cursor1 cursor
for
    select Table_Name
    from TableNames;

open DQC_Cursor1
fetch next from DQC_Cursor1 into @table_name1
while @@FETCH_STATUS = 0 
    begin
        exec Incorporate @table_name = @table_name1,
                @historical_table_name = replace(@table_name1,'Temp','Historical')
    end
close DQC_Cursor1;
deallocate DQC_Cursor1;
于 2013-07-17T17:15:59.960 回答