使用SqlCommand.ExecuteNonQuery,如何获得超出int limit的受影响行数?

时间:2017-03-07 05:51:07

标签: c# sql .net sql-server

我使用C#库SqlCommand.ExecuteNonQuery()来修改SQL数据库。其中一个脚本可以修改超过int.Max行。在这种情况下,该方法返回负值。有没有更好的方法来获得int64精度的正确行数?感谢。

3 个答案:

答案 0 :(得分:1)

如果您在查询末尾添加SELECT @@ROWCOUNT,请使用SqlCommand.ExecuteScalar并将其返回Int64ExecuteNonQuery的返回类型为int,因此没有办法让它直接处理int.Max上的值。

答案 1 :(得分:1)

将其添加到SQL语句的末尾:

select rowcount_big() as [Affected];

并使用ExecuteNonQuery切换ExecuteScalar

答案 2 :(得分:1)

你可以设置&使用 ExecuteNonQuery 返回输出参数,如下所示。

  

声明@Result BIGINT OUTPUT

     

SET @Result = @@ ROWCOUNT