1
我有一個相對簡單的存儲過程,它運行一個插入,然後嘗試返回最後插入的ID。這樣做是爲了讓我可以通過SCOPE_IDENTITY()獲得ID。這對我很好。但之後,我得到了一些報告,在某些機器上,存儲的proc會導致重複的結果。MS Access中存儲過程引起的返回記錄(accdb)
調查後,我發現原因是使用了屬性ReturnsRecords。如果爲true,它將運行一次查詢兩次!對於選擇;誰在乎。儘管如此,它會導致我的數據庫中出現重複。
設置ReturnsRecords爲false可以擺脫這個問題,但它會破壞存儲過程的目的(我絕對必須獲取正確的最後插入的ID)。
我的問題是這樣的:我將如何去插入此記錄並獲取新記錄的ID,同時解決此問題?
附加信息:
- 我目前使用DAO
- 我已經試過ADO.Command方法,但它是 很容易出錯,而且似乎並不 工作,輸出參數爲我。
- 我使用存儲過程僅用於保留範圍。我沒有心思使用存儲過程。我只需要一個可靠的方法來獲取最後插入的行的ID。
- 這是一個ACCDB
- 這是發生在2007年訪問
- 我的數據庫後端是MSSQL Server 2008的
任何幫助或洞察力的讚賞。
這是它目前是如何工作的,只是當我嘗試使用輸出參數,我得到的多步OLE-DB的錯誤。我將如何去檢索輸出值? – Dan 2011-02-17 21:25:47