我在SQL Server 2008中編寫存儲過程,我需要對受查詢影響的行進行計數。@@ ROWCOUNT的正確類型是什麼?
DECLARE
@my_rows AS INT
然後
SELECT *
FROM a table
WHERE some conditions
SET @[email protected]@ROWCOUNT
如果我聲明my_rows爲varchar它工作正常,但如果我聲明爲INT我得到以下錯誤:
Arithmetic overflow error converting expression to data type tinyint.
什麼是正確的類型宣佈?我認爲行的數量只能是整數,在0和行的總數之間。
我測試了你的代碼沒有任何問題。你確定你已經將'@ my_rows'聲明爲'int'而不是'tinyint'作爲異常狀態嗎? – Magnus
好吧,正如HarshalY在他的回答中所寫的,['@@ ROWCOUNT'](https://msdn.microsoft.com/en-us/library/ms187316.aspx)的數據類型其實是'int'。 當我試過你的代碼(用一個實際的select語句)時,我沒有錯誤。 你的錯誤文本建議你將'@ my_rows'聲明爲'tinyint'而不是'int',也許這就是問題所在。 –
您不會從問題中的代碼中獲得該錯誤。請確認這與您正在執行的代碼是否與生成該錯誤的代碼實際相符。 –