我有一个表,其中有一列 processed
它的值是 0 表示失败,1 表示成功。我想添加第三个临时案例,它的值为 2。
我之前的查询是:
string query = "SELECT * FROM dbo.tableName WHERE processed = @processed";
我想更新这个选择产生的行。我当然可以从 .net 做到这一点,但我想知道是否有一个查询可以同时选择行和更新进程列。
我正在使用 sql server 2008
该问题陈述了一个非常古老的解决方案,即输出,我自己无法发现它。
最佳答案
您可以使用 OUTPUT clause :
UPDATE dbo.tableName
SET processed = 2 --or whatever you want..
OUTPUT inserted.*
WHERE processed = @processed
来自 MSDN(上面的链接):
Returns information from, or expressions based on, each row affected by an INSERT, UPDATE, DELETE, or MERGE statement. These results can be returned to the processing application
关于.net - sql如何同时选择和更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32704085/