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 に答える