在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中制作的?
答案 0 :(得分:0)
@@ROWCOUNT
可以,但是我会修改if
控件,因为update
行可能不止一个。
SELECT @UpdateCount = @@ROWCOUNT
IF(@UpdateCount = 0)
BEGIN
SET @Output_IsUpdateSuccessful = 0
END
ELSE
BEGIN
SET @Output_IsUpdateSuccessful = 1
END