[英]getting number of records updated or inserted in sql server stored procedure
我有一个SP插入一些记录并更新其他记录并删除一些。 我想要的是返回插入的内容,更新内容和删除内容的计数值。 我以为我可以使用@@ ROWCOUNT,但这总是给我一个1。
我的INSERT之后运行:
PRINT @@ROWCOUNT
但我的消息控制台显示了真正发生的事情和这个数字:
(36 row(s) affected)
1
所以我可以看到36条记录实际更新了,但@@ ROWCOUNT返回1。
我试图在SP的UPDATE和DELETE部分以相同的结果运行之后做同样的事情。
@@ROWCOUNT
将显示受最新语句影响的行数 - 如果INSERT
和PRINT
之间有任何语句,则它将给出错误的数字。
你能告诉我们更多的代码,以便我们看到执行的顺序吗?
根据@ninesided的答案如何为您工作,您还可以在每次更新/插入/删除时使用output
子句,并从那里获取计数。
例:
declare @count table
(
id int
)
update mytable
set oldVal = newVal
output inserted.field1 into @count
select count(*) from @count
您可以重复使用计数表,并根据需要设置变量来保存值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.