Sql server 在存储过程中。如何判断更新是否有效?

Sql server 在存储过程中。如何判断更新是否有效?,sql-server,Sql Server,我有: 如何判断是否找到要更新的行 我还注意到没有设置计数 有人能告诉我这是怎么回事吗?存储过程中的命令SET NOCOUNT-ON可防止向客户端发回包含行数详细信息的记录集。此附加记录集的存在可能会混淆OLEDB和ADODB等库 您可以修改您的更新声明,如下所示: UPDATE Table1 SET Col1 = 'X' WHERE Val1 = @Val1 它的作用是为每个更新的记录返回一个行集。使用@@ROWCOUNT检索受执行语句影响的行数。在存储过程中

我有:

如何判断是否找到要更新的行

我还注意到没有设置计数


有人能告诉我这是怎么回事吗?

存储过程中的命令SET NOCOUNT-ON可防止向客户端发回包含行数详细信息的记录集。此附加记录集的存在可能会混淆OLEDB和ADODB等库

您可以修改您的更新声明,如下所示:

    UPDATE Table1
    SET    Col1 = 'X'
    WHERE  Val1 = @Val1

它的作用是为每个更新的记录返回一个行集。

使用
@@ROWCOUNT
检索受执行语句影响的行数。在存储过程中:

UPDATE Table1
    SET    Col1 = 'X'
    OUTPUT deleted.Val1, deleted.Col1 as old, inserted.COl1 as new
    WHERE  Val1 = @Val1

这足以知道更新是否有效。您可以使用
输出插入….
逻辑来检索数据更改的完整详细信息。在这里查看它

使用
@@ROWCOUNT
简单地告诉我不要在studio窗口中显示@ROWCOUNT你能用IF给出一个例子作为答案吗?这样我就可以接受这个问题了。谢谢,没错。一定是这样的+1.
 UPDATE Table1
 SET    Col1 = 'X'
 WHERE  Col21 = @Val1

 If @@ROWCOUNT > 0
 begin
   -- execute more logic
   -- execute even more logic
 end