沒有現成這是我的表:ALTER TABLE添加列有默認值和FK,該值在FK引用數據
會員:身份證,....
產品:身份證, ....
我Member
表有一定的價值,如果沒有他們ID = 0,我不希望添加任何成員與ID = 0,所以我嘗試運行此腳本:
ALTER TABLE [Product]
ADD [Member_Id] BIGINT NOT NULL DEFAULT(0),
CONSTRAINT [FK_Product_Member] FOREIGN KEY ([Member_Id]) REFERENCES [Member];
所以有一個錯誤:
The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "FK_Product_Member".
所以我試試這個:
SET IDENTITY_INSERT [Member] ON
INSERT INTO [Member] ([Id]) VALUES (0);
SET IDENTITY_INSERT [Member] OFF
ALTER TABLE [Product]
ADD [Member_Id] BIGINT NOT NULL DEFAULT(0),
CONSTRAINT [FK_Product_Member] FOREIGN KEY ([Member_Id]) REFERENCES [Member];
DELETE FROM [Member] WHERE [Member].[Id] = 0;
那麼新的錯誤是:
The DELETE statement conflicted with the REFERENCE constraint "FK_Product_Member".
如果我再次嘗試創建的所有表,每件事情都會好的,當然我的數據丟失了,所以需要備份,創建表格和恢復數據。那麼在這種情況下有沒有辦法改變Table?你的建議是什麼?
這沒有奏效 – Saeid
你可以做一個又一個way.but這不是一個好方法(使用defualt價值和ALTER TABLE之後的有效ID編輯FK) –