如何获取受存储过程影响的记录数?
对于直接针对数据库执行的INSERT
、UPDATE
和DELETE
SQL 语句,大多数数据库提供程序返回受影响的行数.对于存储过程,受影响的记录数总是-1
.
For INSERT
, UPDATE
and DELETE
SQL statements executed directly against the database, most database providers return the count of rows affected. For stored procedures, the number of records affected is always -1
.
我们如何获取受存储过程影响的记录数?
How do we get the number of records affected by a stored procedure?
推荐答案
为存储过程注册一个out参数,如果使用SQL Server,根据@@ROWCOUNT
设置值.如果您使用的是 Oracle,请使用 SQL%ROWCOUNT
.
Register an out parameter for the stored procedure, and set the value based on @@ROWCOUNT
if using SQL Server. Use SQL%ROWCOUNT
if you are using Oracle.
请注意,如果您有多个 INSERT/UPDATE/DELETE
,您将需要一个变量来存储每个操作的 @@ROWCOUNT
结果.
Mind that if you have multiple INSERT/UPDATE/DELETE
, you'll need a variable to store the result from @@ROWCOUNT
for each operation.
相关文章