[英]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.