如何在更新表时获取更新(不计数)行

Abh*_*hek 3 sql

我想得到更新命令更新的行,但结果只有更新的行没有,但我想要整个行,如select命令,所以请告诉我是否有人对它有任何想法.我正在尝试这个.

update newTable set readKey='1' where id in (select id from newTable where id='1111')
Run Code Online (Sandbox Code Playgroud)

此命令的结果将只是行没有不完整的行,但我希望显示整行.

van*_*van 8

首先,您可以编写简化代码:

update newTable set readKey='1' where id in ('1111')
Run Code Online (Sandbox Code Playgroud)

在SQL Server中,这将仅返回已更新的行数,但仅在SET NOCOUNT未设置时才返回.

基本上你可以做第二个查询,在第一个查询之后显示结果:

update newTable set readKey='1' where id in ('1111');
select * from newTable where id in ('1111');
Run Code Online (Sandbox Code Playgroud)

或者,如果这是SQL Server 2005/2008,那么您可以使用OUTPUT子句:

update  newTable 
set     readKey='1'
output  inserted.id,
        inserted.readKey as readKey,
        deleted.readKey as prevReadKey
where id in ('1111');
Run Code Online (Sandbox Code Playgroud)