1
SELECTの各行に対してストアドプロシージャを実行することは可能ですか?これは、すべての行に対して実行するために何かを探して、最初の行を実行します。SELECTステートメントの各行に対してOUTPUTを使用してストアドプロシージャを実行
Declare
@Loop bit = 1, @ID int, @Exists bit, @ReturnValue bit = 0
WHILE (@Loop) = 1
BEGIN
SELECT @ID = ID FROM Table --Multiple Rows Returned
EXEC [dbo].[StoredProc1] --Exec SP for Each Row
@InputID = @ID
,@Exists = @Exists OUTPUT
IF @Exists = 1
BEGIN
SET @Loop = 0
SET @ReturnValue = 1
END
END
SELECT @ReturnValue [ReturnValue]
はこれを吸収するために少しかかりますが、それは動作します、ありがとう! –
LOCAL STATIC READ_ONLY FORWARD_ONLYをカーソル宣言に追加することを強くお勧めします。 –
@AaronBertrand:もしあなたがそのようなブードゥーの束を推薦しようとするならば、理由を指定する必要があります。さもなければ、それは貨物カルトプログラミングを奨励します。私は 'STATIC'カーソルに' READ_ONLY FORWARD_ONLY'を指定するのはどうしても気にしません。間違って使うと 'STATIC'を使うとかなりの悪影響を及ぼすことがあります。指定されたコードのように、カーソルが閉じられたときに割り当て解除されるカーソルに 'LOCAL'が必要なのでしょうか? – Gabe