我有兩個表INTRFCTRL
和INTERROR
,都帶有標識列FILEID
外鍵約束觸發即使數據確實存在
INTERROR具有以下外鍵從一個臨時連接
ALTER TABLE [dbo].[INTERROR] WITH CHECK
ADD CONSTRAINT [FK_INTERROR_0] FOREIGN KEY([FILEID])
REFERENCES [dbo].[INTRFCTRL] ([FILEID])
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[INTERROR] CHECK CONSTRAINT [FK_INTERROR_0]
我插入數據錶轉換成INTRFCTRL
,然後嘗試將其轉換爲INTERROR
並使用DBCC RESEED控制標識列值
我成功運行這一點,可以看出,67001的FILEID值出現在INTRFCTRL表
DBCC CHECKIDENT (INTRFCTRL, RESEED, 67000)
INSERT INTO dbo.INTRFCTRL SELECT FILEHASH,CASENO,INTNO,FILENAM,...
FROM INTRFCTRL_TEMP
當我再嘗試運行
DBCC CHECKIDENT (INTERROR, RESEED, 67000)
INSERT INTO dbo.INTERROR SELECT INTRFLINENO,CASENO... FROM INTERROR_TEMP
我得到
的INSERT語句與FOREIGN KEY約束條件衝突 「FK_INTERROR_0」。衝突發生在數據庫「ESSDEV」中,表 「dbo.INTRFCTRL」,列'FILEID'。
然而,我可以看到INTRFCTRL
數據我在做什麼錯?
可能是INTRFCTRL_TEMP和INTERROR_TEMP有不同數量的行。 – Serg