sql - 获取在 sql server 存储过程中更新或插入的记录数

标签 sql sql-server sql-server-2008 stored-procedures

我有一个 SP,它插入一些记录并更新其他记录并删除一些记录。我想要的是返回插入的内容、更新的内容和删除的内容的计数值。我以为我可以使用 @@ROWCOUNT 但这总是给我一个 1。

在我的 INSERT 之后我运行:

PRINT @@ROWCOUNT

但我的消息控制台显示了真正发生的事情以及这个数字:

(36 row(s) affected)
1

所以我可以看到实际上更新了 36 条记录,但 @@ROWCOUNT 返回了 1。

在 SP 的 UPDATE 和 DELETE 部分运行结果相同后,我尝试做同样的事情。

最佳答案

@@ROWCOUNT 将显示受最近语句影响的行数 - 如果您在 INSERTPRINT 之间有任何语句> 那么它会给你错误的号码。

您能否再给我们展示一些代码,以便我们查看执行顺序?

关于sql - 获取在 sql server 存储过程中更新或插入的记录数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8081768/

相关文章:

MySQL - 如何按投票总和进行连接和排序?

sql - 用于多列比较的索引扫描 - 非统一索引列排序

mysql - 通过将它们与字段的平均值进行比较来获取每个项目价格的百分比差异

sql-server - 为什么这些日期时间值返回相同的 Checksum 和 Checksum_Agg?怎样才能让它更加独特呢?

sql - 原理Sql Server中不存在dbo

sql - 如何将列数据拆分到不同的行

mysql - 从一个表连接到另一个表中选择最近的结果

.net - asp.net的数据库访问限制

sql-server - 枢轴获取EAV数据

sql - 查询时的日期未在 SQL Server 中返回正确的输出