Questo è il mio Tabelle:Alter Table Aggiungi colonna con un valore predefinito e FK, tale valore non esistente nella FK Dati di riferimento
membro: Id, ....
prodotto: Id, ....
mio Member
tabella sono alcuni valori nessuno se li con id = 0 e non voglio aggiungere qualsiasi membro con id = 0, quindi cerco di eseguire questo script:
ALTER TABLE [Product]
ADD [Member_Id] BIGINT NOT NULL DEFAULT(0),
CONSTRAINT [FK_Product_Member] FOREIGN KEY ([Member_Id]) REFERENCES [Member];
per cui v'è un errore:
The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "FK_Product_Member".
così cerco questo:
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;
poi il nuovo errore è:
The DELETE statement conflicted with the REFERENCE constraint "FK_Product_Member".
Se provo a creare di nuovo tutte le tabelle Ovviamente tutto andrà bene con i miei dati persi quindi è necessario disporre di backup, creare tabelle e ripristinare i dati. Quindi c'è un modo per modificare Table con questa situazione? qual è il tuo suggerimento?
che non è lavorato – Saeid
si può fare un altro way.but questo non è un buon modo (utilizzare un documento di identità valido per il valore defualt e dopo ALTER TABLE edit the FK) –