我有一個帶有「ID」列的數據庫。無論何時數據庫有新條目,我都會從數據庫中獲取最後一個ID,然後增加該值,然後在Insert語句中使用它。數據庫隔離模型
編輯:我需要在多個插入語句中使用的ID。我將從主表中獲取此ID並使用此ID將值插入到相關表中。
NextID = Select Max(ID) + 1 From Table
INSERT INTO Table1(ID, Col1, Col2...) Values(NextId, Value1, Value2...)
INSERT INTO Table2 (ID,col1,col2....) Values (NextID, Value1, Value2...)
我不知道這是否是一個好辦法,因爲我知道會有併發問題。 當我的應用程序試圖讀取NextID時,應用程序的另一個實例有可能會嘗試讀取相同的值,因此可能會出現併發問題。
有沒有適當的方法來處理這種情況?我的意思是有辦法設置數據庫隔離級別。對於這種情況,這將是一個合適的隔離級別。
此外,如果有人可以建議我用另一種方法來維護和手動增加數據庫中的ID,我也對此表示贊同。
如果這些信息不夠,請讓我知道您需要什麼。
我正在使用VB和MS Sql Server 2008的ASP.Net。我不想使用SQL Server的內置「身份」。
做一個單一的陳述.... –
@MitchWheat你是什麼意思的單一陳述?我也有同樣的問題...好心建議。 – Monodeep
@MitchWheat是的,這是一個選項,但我需要多個插入語句中的ID。我將從主表讀取nextID並使用該ID插入其他相關表中。 – Nitish