RedGateのSQLプロンプトを使用してそれを愛する。しかし、私は今日初めて「curff」スニペット(「早送り読み取り専用カーソル」)を使用し、次のTSQLを生成しました(具体的な例にするために入力しました)。
DECLARE @variable INT
DECLARE Curse CURSOR FAST_FORWARD READ_ONLY FOR
SELECT ID FROM #TempTable
OPEN Curse
FETCH NEXT FROM Curse INTO @variable
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM Curse INTO @variable --This seems wrong...
PRINT ('Hello, I am # ' + CAST(@variable AS VARCHAR(10)))
END
CLOSE Curse
DEALLOCATE Curse
内側の場所ではありませんFETCH NEXT
(WHILE
ループ内)incorrect?ループのendにあるか、少なくともafter変数を使用する必要があるクエリ(クエリ)にある必要があります、 番号?
はい、それは不正解です。内側のFETCH NEXT
は、ループの[〜#〜] end [〜#〜]に配置する必要があります。上記のコードは次のようになります。
Hello, I am # 2
Hello, I am # 3
Hello, I am # 4
Hello, I am # 5
Hello, I am # 5
問題を修正し、ループの最後にFETCH NEXT
を配置すると、正しい期待される出力が得られます。
Hello, I am # 1
Hello, I am # 2
Hello, I am # 3
Hello, I am # 4
Hello, I am # 5
これをRedGateに送信します...