我使用C#库SqlCommand.ExecuteNonQuery()
来修改SQL数据库。其中一个脚本可以修改超过int.Max
行。在这种情况下,该方法返回负值。有没有更好的方法来获得int64精度的正确行数?感谢。
答案 0 :(得分:1)
如果您在查询末尾添加SELECT @@ROWCOUNT
,请使用SqlCommand.ExecuteScalar
并将其返回Int64
。 ExecuteNonQuery
的返回类型为int
,因此没有办法让它直接处理int.Max上的值。
答案 1 :(得分:1)
将其添加到SQL语句的末尾:
select rowcount_big() as [Affected];
并使用ExecuteNonQuery
切换ExecuteScalar
。
答案 2 :(得分:1)
你可以设置&使用 ExecuteNonQuery 返回输出参数,如下所示。
声明@Result BIGINT OUTPUT
SET @Result = @@ ROWCOUNT