これは私のテーブルです:
メンバー: Id, ....
製品: Id, ....
Id = 0 の場合、私のMember
テーブルにはいくつかの値がありません。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".
すべてのテーブルを再度作成しようとすると、データが失われてももちろん問題ないので、バックアップを取得し、テーブルを作成してデータを復元する必要があります。この状況でテーブルを変更する方法はありますか? あなたの提案は何ですか?