SQL Server-@@ ROWCOUNT的替代方法,用于检查表中是否进行了UPDATE

时间:2018-10-26 10:13:30

标签: sql sql-server stored-procedures

在SQL Server中,我有一个存储过程可以更新表中的特定列。并返回一个布尔值输出参数,具体取决于它是否更新了表中的项目。

看起来像这样。

DECLARE @UpdateCount INT

UPDATE dbo.Person
SET Age = 21
WHERE ID = 1

SELECT @UpdateCount = @@ROWCOUNT

IF(@UpdateCount = 1)
  BEGIN
    SET @Output_IsUpdateSuccessful = 1
  END

ELSE
  BEGIN
    SET @Output_IsUpdateSuccessful = 0
  END

为了验证是否进行了更新,我只使用@@ ROWCOUNT。但是我不确定这是否是一种可靠的方法。

  

是否有一般或最佳做法来检查是否已执行UPDATE   是在SQL Server中制作的?

1 个答案:

答案 0 :(得分:0)

@@ROWCOUNT可以,但是我会修改if控件,因为update行可能不止一个。

SELECT @UpdateCount = @@ROWCOUNT

IF(@UpdateCount = 0)
BEGIN
    SET @Output_IsUpdateSuccessful = 0
END  
ELSE
BEGIN
    SET @Output_IsUpdateSuccessful = 1
END