执行最新(最小)和返回键的更新

时间:2012-03-21 01:02:58

标签: tsql min

拥有一个非常活跃的PK Int Iden表

我需要的是:

update table 
set statusID = 7, folderID = 12 
where PK = ( select MIN(PK) from tbl where statusID = 5)

我想要的是PK值,或者如果没有状态= 5,那么某些指示器就会失败。

1 个答案:

答案 0 :(得分:1)

如果是SQL Server 2005+,您可以使用OUTPUT clause返回更新行的PK:

update table 
set statusID = 7, folderID = 12 
output inserted.PK
where PK = ( select MIN(PK) from tbl where statusID = 5)

上述语句将(尝试)使用从子查询返回的PK更新行,并且返回具有单个列PK的行集。返回的行集将包含更新的行的PK,如果没有更新,则不包含任何内容。