2012-03-21 46 views
0

有一个非常活跃表PK诠释鉴定者进行更新最新的(最小),并取回钥匙

我需要的是:

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

我想需要背PK值,或者如果有没有状态= 5,那么一些指标失败了。

+0

什么数据库系统(名称和版本)? – 2012-03-21 02:19:01

回答

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,或者如果没有更新,则不包含任何内容。