Domanda

Ho una tabella con un sacco di FKS.

Table Vehicles
-----------
ColorID -> Color.ID
MakeID -> Make.ID
ModelID -> Model.ID
etc...

Il mio problema è che ho dimenticato un paio di colonne e ho bisogno di aggiungere loro. Posso aggiungere tramite clic destro sul tavolo e la scelta di 'Design', ma non se voglio farle NOT NULL, o eliminare una colonna. Potrei anche generare una goccia / Crea script, ma ottengo questo errore:

Msg 3726, Level 16, State 1, Line 4
Could not drop object 'dbo.SellVehicles' because it is referenced by a FOREIGN KEY constraint.

Ho bisogno di passare attraverso e rimuovere ogni FK e poi cadere / creare, quindi aggiungere di nuovo o c'è un modo rapido / indolore di fare questo? C'è un modo per eliminare e ricreare queste FKS in fretta?

Perché non lo fa

IF  EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_SellVehicles_Conditions]') AND parent_object_id = OBJECT_ID(N'[dbo].[SellVehicles]'))
ALTER TABLE [dbo].[SellVehicles] DROP CONSTRAINT [FK_SellVehicles_Conditions]
GO

eliminare questo errore? È l'FK ancora sull'altro tavolo fa riferimento?

È stato utile?

Soluzione

Il vincolo che sta provocando l'errore è non sul tavolo dbo.SellVehicles ; è su una tabella che riferimenti tavolo dbo.SellVehicles. I riferimenti al colore, marca e le tabelle del modello non sono il problema -. Tu sei il tentativo di eliminare / cancellare il figlio in una relazione padre-figlio

dubito che il vincolo si prova per esisteva prima della ALTER TABLE ... DROP CONSTRAINT ....

In SSMS, è possibile fare clic destro su un tavolo, e selezionare "Dipendenze". C'è un pulsante per selezionare la visualizzazione di oggetti che dipendono dalla tabella di dbo.SellVehicles, o la roba che la tabella dbo.SellVehicles dipende.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top