我正在存储过程中构建动态插入语句。
我在变量中构建 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
关于sql - 如何从 EXEC() 语句中运行的 INSERT 获取 SCOPE_IDENTITY(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12301075/