我有存儲過程,採取@dbName
並在該數據庫中插入記錄。 我想獲取最後插入的記錄的ID。 SCOPE_IDENTITY()
返回NULL並且@@IDENTITY
返回正確的ID,爲什麼會發生?在我閱讀時,如果桌面上有觸發器,最好使用SCOPE_IDENTITY()
。 我可以使用IDENT_CURRENT
嗎?無論觸發器是否它都會返回表格範圍內的ID?爲什麼SCOPE_IDENTITY返回NULL?
那麼這是什麼問題和使用什麼?
EDITED
DECALRE @dbName nvarchar(50) = 'Site'
DECLARE @newId int
DECLARE @sql nvarchar(max)
SET @sql = N'INSERT INTO ' + quotename(@dbName) + N'..myTbl(IsDefault) ' +
N'VALUES(0)'
EXEC sp_executesql @sql
SET @newId = SCOPE_IDENTITY()
只是爲什麼我低估了你的問題的一個說明。從下面的評論看來,你在提供答案後編輯了你的問題,使答案看起來很混亂。不知道如何做某件事情並不令人羞恥。公開你的學習過程,以便其他人可以從中學習。就像現在一樣,有這個問題的其他人現在不能使用你的經驗來學習。 –
@本,我不同意你的看法。 「......不知道...的恥辱......」與此無關。我解釋了爲什麼我在回答馬丁時編輯我的文章。我錯誤地在這裏寫錯了他們的順序。在我的代碼中(在家中),我按正確的順序寫了它們。我請你請upvote我的問題請 – theateist