0
我試圖向數據庫中插入大約30k行數據。第一千行經過沒有任何問題,但之後,我不斷收到錯誤「INSERT語句與FOREIGN KEY約束衝突」插入語句與FOREIGN KEY約束衝突後第一個1k插入
我插入到一個表中首先獲取身份,然後用它作爲fk其他表。代碼看起來像
insert into PYMT_HIST(PAR_NUM,BILL_NUM,RCPT_NUM,TAX_YR,TOT_AMT_DUE,TOT_PD,PD_DATE,PD_BY,MUNI_DIST_ID)
values (@par_num,@BILL_NUM,@RCTP_NUM,@TAX_YR,@TOT_AMT_DUE,@TOT_PD,(Convert(datetime,@PD_DATE)),@PD_BY,@MUNI_DIST_ID);
set @pymt_hist_id = @@identity
IF @REAL_ESTATE > 0
insert into PYMT_HIST_DETL(PYMT_HIST_ID,AMT_PD,FIN_TXN_LN_TY_ID)
values(@pymt_hist_id,@REAL_ESTATE,1);
您可以在輸出中打印您嘗試插入的值,然後驗證爲什麼會針對這些特定值發生錯誤。 – 2011-04-12 13:52:45
這可能不是問題,但如果您使用的是SQL Server 2005或更高版本,則可能需要使用SCOPE_IDENTITY()而不是@@ identity。您希望確保您獲得的身份值來自當前會話(而不是其他人正在運行插入同一個表中的另一個查詢)。 http://msdn.microsoft.com/en-us/library/ms190315.aspx – rsbarro 2011-04-12 13:52:50
@rsbarro - 「@@ identity'的問題觸發不是併發事務。 – 2011-04-12 13:55:47