ストアドプロシージャのリストを含むテーブルがあります。
カーソルを使用してループし、各ストアドプロシージャの結果を呼び出してキャプチャしています(すべて0または1を返します)。
ので、私は持っています:
DECLARE @PROC_ID INT,
@PROC_NAME VARCHAR(50)
SELECT *
INTO #MY_PROCS
FROM TABLE_PROCS
DECLARE MY_CURSOR CURSOR FOR
SELECT PROC_ID, PROC_NAME
FROM TABLE_PROCS
OPEN MY_CURSOR
FETCH NEXT FROM MY_CURSOR INTO @PROC_ID, @PROC_NAME
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @PROC_RESULT = .......
UPDATE #MY_PROCS SET PROC_RESULT = @PROC_RESULT WHERE PROC_ID = @PROC_ID
END
CLOSE MY_CURSOR
DEALLOCATE MY_CURSOR
DROP TABLE #MY_PROCS
私はカーソルで読んでいました、そして私はそれを可能な限り設定するべきであると読みましREAD ONLY
たNO LOCK
。
また、一時テーブルの代わりにテーブル変数を使用する必要がありますか?
カーソルを使ってこれを行うことは可能ですか?