我用odbc_connection
,問題是我需要插入最後一個id。檢索最後插入的id的問題
我在這裏使用這個查詢,但我沒有得到所要的結果:
echo $result = odbc_exec($connection, "SELECT @"."@IDENTITY AS Ident");
我做錯什麼了嗎?
我用odbc_connection
,問題是我需要插入最後一個id。檢索最後插入的id的問題
我在這裏使用這個查詢,但我沒有得到所要的結果:
echo $result = odbc_exec($connection, "SELECT @"."@IDENTITY AS Ident");
我做錯什麼了嗎?
您需要使用IDENT_CURRENT('dtabase name')來檢索從任何連接插入到列中的最後一個標識值。
您的解決方案無法正常工作的原因是@@身份只適用於當前連接並忽略其他連接。
如果你有MySQL的ODBC下 - 你可以使用一個查詢:
"SELECT LAST_INSERT_ID();"
或
SELECT @@IDENTITY AS ID
我假設你正在插入表中有標識列?
當你說你沒有得到所需的結果,你的意思是你得到了錯誤的數字,或者你是空的?如果你得到錯誤的數字,你插入的表是否有觸發器插入到另一個表中?
我剛剛注意到你的評論,它返回錯誤的數字,嘗試scope_identity()作爲marc_s建議。 – Adrian 2013-02-27 16:36:06
我建議使用**'SCOPE_IDENTITY()**而不是其他任何東西來抓取新插入的標識值。 [請參閱此博客文章,瞭解有關WHY的解釋](http://blog.sqlauthority.com/2007/03/25/sql-server-identity-vs-scope_identity-vs-ident_current-retrieve-last-inserted-identity記錄/) – 2013-02-27 16:18:31
@pyetjegoo調用'IDENTITY'之前,你做了任何插入,如果是這樣,然後發佈該查詢 – vikas 2013-02-27 16:30:02