.net - sql如何同时选择和更新

标签 .net sql-server database sql-server-2008

我有一个表,其中有一列 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/

相关文章:

c# - 一行中的线程安全单例属性

.net - 在 F# 中对元组进行排序

c# - 视频捕获 + 上传 + 处理 + 流回 - .NET & C#

c# - 来自 IIS7 的 MSSQL 连接

sql-server - SQL Server 存储过程中的参数问题

sql-server - 如果在 CTE 范围内?

c# - 检查属性是否可以延迟加载/是否可用而无需捕获异常

c# - .NET 字符串真的应该被认为是不可变的吗?

database - 在 MongoDB 全文搜索中突出显示匹配项

php - 我如何构造这种sql查询