How can I get the number of records affected by a stored procedure?(如何获取受存储过程影响的记录数?)
问题描述
对于直接针对数据库执行的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.
这篇关于如何获取受存储过程影响的记录数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何获取受存储过程影响的记录数?


基础教程推荐
- 如何在 SQL Server 的嵌套过程中处理事务? 2021-01-01
- SQL Server:只有 GROUP BY 中的最后一个条目 2021-01-01
- 使用pyodbc“不安全"的Python多处理和数据库访问? 2022-01-01
- SQL Server 中单行 MERGE/upsert 的语法 2021-01-01
- 无法在 ubuntu 中启动 mysql 服务器 2021-01-01
- Sql Server 字符串到日期的转换 2021-01-01
- ERROR 2006 (HY000): MySQL 服务器已经消失 2021-01-01
- SQL Server 2016更改对象所有者 2022-01-01
- 将数据从 MS SQL 迁移到 PostgreSQL? 2022-01-01
- 在 VB.NET 中更新 SQL Server DateTime 列 2021-01-01