【T-SQL】CURSORの使い方
触ってないとすぐ忘れちゃう…。
https://docs.microsoft.com/ja-jp/sql/t-sql/functions/fetch-status-transact-sql
とはいえマニュアルじっくり読んでないから、 ちゃんと読みたい。
CREATE CUROR cursor_name FOR SELECT id, name FROM sample_table ; DECLARE @c_id INT; DECLARE @c_name NVARCHAR(10); OPEN cursor_name; FETCH NEXT FROM cursor_name  INTO @c_id, @c_name ; DECLARE @tmpTable ( t_id INT, t_name NVARCHAR(10) ) -- @@FETCH_STATUSは -- -1 : FETCH文失敗か結果セットに収まらない -- -2 : 取り出した行がない WHILE @@FETCH_STATUS = 0 BEGIN INSERT INTO @tmpTable VALUES ( @c_id, @c_name ); -- 次を読み込む FETCH NEXT FROM cursor_name  INTO @c_id, @c_name ; END CLOSE cursor_name; -- @@FETCH_STATUSは初期化されないから注意
あと完全に別件だし、MSDNでも前者だけど、
IF boolean BEGIN statement END
ではなくて
IF boolean BEGIN statement END
がモアベターだとか。 CodeCompleteによれば、だけど。
ほなまた!