我剛剛繼承了一個存儲過程,作爲插入新用戶的系統的一部分。
頂部,@user_id
被宣佈爲INT OUTPUT
,底部SET @user_id = @@IDENTITY
,由於某種原因它總是返回零。如果我做的:強制輸出參數不是tinyint?
select @@IDENTITY
...我避開的東西 '1872040'
如果我做的:
SET @user_id = 187300
...我得到:
錯誤轉換數據類型int to smallint
我也得到相同的,如果我做的:
SET @user_id = CAST(@@IDENITY as INT)...
它需要SET @user_id = CAST(@@IDENITY as TINYINT)
或只是@user_id = @@IDENITY
它不給我的錯誤。然而,它只是返回null/0.所以,我一直在搜索,無法真正找到答案,有沒有更好的方法來強制輸出參數不是tinyint?這是在MS SQL。
您可能需要將貼紙貼出來供我們看 - 這聽起來有點古怪!此外,您可能希望使用SCOPE_IDENTITY()而不是@@ IDENTITY – AdaTheDev 2010-02-24 22:00:58