通过单个查询捕获@@ error和@@ rowcount

时间:2019-05-06 17:22:44

标签: tsql

这似乎应该很简单,但我找不到解决方法。

set nocount on;

Update MyTable
set MyField = 'value'
--where 1 = 1/0 -- comment in to test getting an error.

print convert(varchar, @@error)
print "blah blah" + convert(nvarchar, @@rowcount) -- this is always zero because of the previous statement

我尝试将它们存储在变量中,但是设置变量会生成新的@@ rowcount和新的@@ error值。

我也尝试使用if条件,因为我不在乎行数。但是评估if似乎也会重置@@ rowcount。

1 个答案:

答案 0 :(得分:2)

您可以在单个语句中完成此操作,如下所示:

DECLARE @err INT, @cnt INT
SELECT @err=@@ERROR, @cnt=@@ROWCOUNT