ストアド プロシージャ内に動的挿入ステートメントを作成しています。
変数で sql 構文を構築し、それを で実行しEXEC(@VarcharVariable)
ます。
SQL挿入は正常に機能しますが、SET @Record_ID = Scope_Identity()
後で実行すると値が得られません。
どうすればこれをキャプチャできますか?にラップする必要がありEXEC
ますか?
ストアド プロシージャ内に動的挿入ステートメントを作成しています。
変数で sql 構文を構築し、それを で実行しEXEC(@VarcharVariable)
ます。
SQL挿入は正常に機能しますが、SET @Record_ID = Scope_Identity()
後で実行すると値が得られません。
どうすればこれをキャプチャできますか?にラップする必要がありEXEC
ますか?
sp_executesql を使用した基本的な例
DECLARE @sql NVARCHAR(MAX)
DECLARE @Id INTEGER
SET @sql = 'INSERT MyTable (Field1) VALUES (123); SELECT @Id = SCOPE_IDENTITY()'
EXECUTE sp_executesql @sql, N'@Id INTEGER OUTPUT', @Id OUTPUT
-- @Id now has the ID in
はい、それは scope_identity() の目的である動的SQLの一部である必要があります