我讀到使用OUTPUT子句可能是檢索新插入的記錄的身份的最佳方法。我很確定我可以編寫一個存儲過程並調用它,但是我的業務對象使用動態生成的SQL,所以不得不使用存儲過程會產生問題。任何人都可以告訴我如何使用ado.net使用output子句執行單個輸入語句並獲取返回的標識值?看起來好像不可能這樣做,但我想我會問...使用ado.net獲取標識的OUTPUT子句的示例?
編輯:好吧,所以它比我想象的更容易...我想我必須輸出到一張桌子首先變量。但是現在我做這件事的方式並不完全正確,因爲它在插入新記錄之前正在返回標識。這裏我只是用測試語句:
INSERT Test (F1)
OUTPUT SCOPE_IDENTITY()
VALUES ('Testing')
每次我這樣做,它給我回結果產生一個數比最後插入記錄的價值認同實際上是較低的。我只需要在結果中加1,但當我在表格之間移動時,這不起作用,而最後的結果來自不同的表格。
我想知道我是否應該使用IDENT_CURRENT('Test')並添加1,因爲它將作爲單個事務處理,我不應該擔心併發問題。
有關如何獲得正確結果的任何想法,但返回?
你問的是如何返回@@ IDENTITY作爲存儲過程的輸出參數,假設有插入? – Candide 2012-02-09 08:04:25
@Ingenu查看我的編輯 – 2012-02-09 08:18:57