簡體   English   中英

獲取在sql server存儲過程中更新或插入的記錄數

[英]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將顯示受最新語句影響的行數 - 如果INSERTPRINT之間有任何語句,則它將給出錯誤的數字。

你能告訴我們更多的代碼,以便我們看到執行的順序嗎?

根據@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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM