我正在构建一个通用参数化查询(INSERT或UPDATE),我正在使用插入列的参数(在INSERT查询中)和更新列的参数以及where子句列(在UPDATE查询中)
在任何一种情况下,我还允许指定由我的方法返回的列名,并完成我使用OUTPUT INSERTED.ColumnName
。此列可能是表的主键,但也可能是其他内容。
现在,在执行INSERT或UPDATE之后,我想获取刚刚插入或更新的行的键。我怎样才能做到这一点?我可以做OUTPUT INSERTED.ColumnName, SCOPE_IDENTITY()
之类的事情吗?
注意:如果重要,这不是存储过程。
答案 0 :(得分:1)
当然可以。看起来有点像这样:
DECLARE @result TABLE (
ID INT,
SomeColumn NVARCHAR(100)
)
INSERT SomeTable ( SomeColumn )
OUTPUT SCOPE_IDENTITY(), INSERTED.SomeColumn
INTO @result
VALUES ( 'Foo' ),
( 'Bar' )
SELECT * FROM @result
这将输出:
ID | SomeColumn
---------------
1 | 'Foo'
2 | 'Bar'