0

我正在构建一个通用参数化查询(INSERT 或 UPDATE),我正在使用插入列的参数(在 INSERT 查询中)和更新列的参数和 where 子句列(在 UPDATE 查询中)。

在任何一种情况下,我还允许指定由我的方法返回的列名,并实现我正在使用OUTPUT INSERTED.ColumnName的 . 此列可能是表的主键,但也可能是其他内容。

现在,在执行 INSERT 或 UPDATE 之后,我想获取刚刚插入或更新的行的键。我怎样才能做到这一点?我可以做类似的事情OUTPUT INSERTED.ColumnName, SCOPE_IDENTITY()吗?

注意:这不是存储过程,以防万一。

4

1 回答 1

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'
于 2013-11-15T01:25:43.523 回答