我正在SQL Server 2008中编写存储过程,我需要计算受查询影响的行。
DECLARE
@my_rows AS INT
然后
SELECT *
FROM a table
WHERE some conditions
SET @my_rows=@@ROWCOUNT
如果我将my_rows声明为varchar它可以正常工作,但如果我声明为INT,我会收到以下错误:
将表达式转换为数据类型tinyint的算术溢出错误。
申报的正确类型是什么?我认为行的数量只能是整数,而且是0和行的总数。
答案 0 :(得分:2)
根据MSDN,@@ROWCOUNT
的正确返回类型为int。
SQL代码很好,即使@my_rows
声明为tinyint
也能正常工作。