Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何更新同一查询中的选定行?_C#_Asp.net_Sql - Fatal编程技术网

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

C# 如何更新同一查询中的选定行?,c#,asp.net,sql,C#,Asp.net,Sql,我有一个表table1和一个select查询 select col1 from table1 where id <= 10; 从表1中选择col1,其中id您不必更新它,您可以使用CASE语句: SELECT col2 = CASE WHEN id<=10 THEN 'some value' ELSE col1 END FROM table1 SELECT col2=CASE WHEN id您不能使用一个查询更新和选择行,因为两者是不同的操作。 因此,您需要编写两个不同的查询 若

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

select col1 from table1 where id <= 10;

从表1中选择col1,其中id您不必更新它,您可以使用
CASE
语句:

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

SELECT col2=CASE WHEN id您不能使用一个查询更新和选择行,因为两者是不同的操作。
因此,您需要编写两个不同的查询


若您不需要更新表,也不需要临时输出,那个么@Yosi已经为您提供了完美的解决方案

使用输出尝试此sql查询以获取更新的vlaue

UPDATE persons  
SET LastName = 'test'
OUTPUT Inserted.LastName
where id<10;
更新人员
SET LastName='test'
输出已插入。LastName

您想在何处更新实际表或返回的结果集?如果您想更新它,为什么选择它?只需在不使用“选择查询”的情况下更新它。为什么您会关心是否选择了另一列?@Yosi即使选择了同一列,在生成查询时该值也是已知的,那么为什么还要选择呢?我希望选择结果用于进一步的编码部分。
UPDATE persons  
SET LastName = 'test'
OUTPUT Inserted.LastName
where id<10;
UPDATE persons  
SET LastName = 'test'
OUTPUT DELETED.LastName
where id<10;