的代碼是這樣的在存儲過程
INSERT INTO TABLE (VAL1,VAL2,VAL3) VALUES (X,Y,Z)
GetLastInsertID @tablename='TABLE'
GetLastInsertID使用@@ IDENTITY SCOPE_IDENTITY或()+插入,一起爲這個存儲過程:
SELECT @@IDENTITY AS LastID FROM TABLE
如何獲得存儲過程按照上面Select @@ IDENTITY語句中的要求返回'LastID'?
我得到以下錯誤:
Incorrect syntax near 'GetLastInsertId'.
...但是當自行執行這工作得很好:
GetLastInsertID @tablename='TABLE'
好,謝謝,我更新,以SCOPE_IDENTITY()。但是你說不要把它放在一個不同的SP中,把它放在與Insert相同的SP中?
再說,我還是我得到一個錯誤,當我與此相結合的刀片:
SELECT SCOPE_IDENTITY() AS LastID FROM TABLE
這裏是新的錯誤消息:
There is already an object named 'TABLE' in the database.
使用[SCOPE_IDENTITY()](http://msdn.microsoft.com/en-us/library/ms190315.aspx)是優選的,而不是'@@ IDENTITY'。 –
@Joe:請參閱[Joel的答案](http://stackoverflow.com/questions/7236141/using-identity-insert-together-in-stored-procedures/7236192#7236192),SCOPE_IDENTITY不起作用,因爲存儲 - 程序是一個不同的範圍。 –
請參閱[Identity Crisis](http://msdn.microsoft.com/zh-cn/library/aa224821(SQL.80).aspx)爲什麼@@ IDentity不好。它的一篇舊文章,但標題很容易記住 –