Sql 返回受更新查询影响的所有主键
是否可以检索受更新查询影响的所有主键?例: 表:Sql 返回受更新查询影响的所有主键,sql,sql-server,tsql,ssms,Sql,Sql Server,Tsql,Ssms,是否可以检索受更新查询影响的所有主键?例: 表: +-------------+---------+--------+ |idx (PK, int)|FirstName|LastName| +-------------+---------+--------+ |1 |Jane |Smith | +-------------+---------+--------+ |2 |John |Test | +-------------+
+-------------+---------+--------+
|idx (PK, int)|FirstName|LastName|
+-------------+---------+--------+
|1 |Jane |Smith |
+-------------+---------+--------+
|2 |John |Test |
+-------------+---------+--------+
|3 |Adam |Smith |
+-------------+---------+--------+
查询:
UPDATE clients SET [LastName] = 'Smith' WHERE [FirstName] = 'John'
UPDATE clients SET [FirstName] = 'test' WHERE [LastName] = 'Smith'
我想要的回报是:
二,
但是我也希望这个方法可以用于多行。。。例:
查询:
UPDATE clients SET [LastName] = 'Smith' WHERE [FirstName] = 'John'
UPDATE clients SET [FirstName] = 'test' WHERE [LastName] = 'Smith'
我想要的回报是:
1,3
创建符合以下条件的事务:
UPDATE clients SET [LastName] = 'Smith' OUTPUT inserted.idx WHERE [FirstName] = 'John' ;
将OUTPUT子句与表变量结合使用以更新所有ID:
declare @insertedIds table (id int)
update
supportContacts
set
type = 'Email, updated'
output inserted.id into @insertedIds
where
type = 'Email'
select id from @insertedIds
似乎使用输出是一种方式。 看看我做的小提琴
SQL Server在
UPDATE
语句中实现子句。如PM 77-1所述:您可以使用OUTPUT
子句从行中获取任何数据(注意复数形式),例如Id
值<代码>输出可与插入
、更新
、删除
和合并
一起使用,并在更新
时提供对前后值的访问。一个很值得放在你口袋里的工具。