tutorial - t sql sql差異




我如何獲得受存儲過程影響的記錄數? (4)

@@ROWCOUNT

對於直接針對數據庫執行的INSERTUPDATEDELETE SQL語句,大多數數據庫提供程序返回受影響的行數。 對於存儲過程,受影響的記錄數始終為-1

我們如何獲得受存儲過程影響的記錄數?


@@RowCount將為您提供受SQL語句影響的記錄數。

只有在您之後立即發布, @@RowCount才有效。 所以如果你陷入錯誤,你必須在同一條線上完成。 如果你把它分開,你會錯過任何你放在第二位的。

SELECT @NumRowsChanged = @@ROWCOUNT, @ErrorCode = @@ERROR

如果您有多個語句,則必須捕獲每個語句受影響的行數並添加它們。

SELECT @NumRowsChanged = @NumRowsChanged  + @@ROWCOUNT, @ErrorCode = @@ERROR

對於Microsoft SQL Server,可以返回@@ROWCOUNT變量以返回存儲過程中最後一條語句影響的行數。


為存儲過程註冊一個out參數,如果使用SQL Server,則根據@@ROWCOUNT設置值。 如果您使用的是Oracle,請使用SQL%ROWCOUNT

請注意,如果您有多個INSERT/UPDATE/DELETE ,則需要一個變量來存儲@@ROWCOUNT對每個操作的結果。





plsql