如何更新同一查询中的选定行?

时间:2013-10-17 05:15:11

标签: c# asp.net sql

我有1个表table1和一个select查询

select col1 from table1 where id <= 10;

我想更新相同的记录

update table1 set col2 = 'some value' where id < 10;

我想在1个查询中执行这两个操作并获取所选结果,以便我可以使用它。

我该怎么做?

3 个答案:

答案 0 :(得分:1)

您无法使用单个查询更新和选择行,因为两者都是不同的操作。 所以你需要写两个不同的查询。

如果您不需要更新表并想要临时输出,那么@Yosi为您提供了完美的解决方案。

答案 1 :(得分:0)

您不必更新它,使用CASE声明:

SELECT col2 = CASE WHEN id<=10 THEN 'some value' ELSE col1 END
FROM table1

答案 2 :(得分:0)

使用 OUTPUT 尝试此sql查询以获取更新的版权

UPDATE persons  
SET LastName = 'test'
OUTPUT Inserted.LastName
where id<10;

如果在更新后需要旧值:

UPDATE persons  
SET LastName = 'test'
OUTPUT DELETED.LastName
where id<10;

DEMO