Question

J'ai une table avec un tas de clefs étrangères.

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

Mon problème est que j'ai oublié quelques colonnes et je dois les ajouter. Je peux les ajouter par un clic droit sur la table et en choisissant « Design », mais pas si je veux les rendre NOT NULL, ou supprimer une colonne. Je pourrais aussi générer une baisse / Créer script, mais je reçois cette erreur:

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

Dois-je passer et supprimer chaque FK puis déposer / créer, puis les ajouter ou est-il un moyen rapide / indolore de faire cela? Est-il possible de laisser tomber et de recréer ces rapidement FKs?

Pourquoi pas

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

éliminer cette erreur? Le FK toujours l'autre table référencée?

Était-ce utile?

La solution

La contrainte qui déclenche l'erreur est pas sur la table de dbo.SellVehicles ; il est sur une table références la table dbo.SellVehicles. Les références à la couleur, la marque et tables modèle ne sont pas la question -. Vous êtes tenter de déposer / supprimer l'enfant dans une relation parent-enfant

Je doute que la contrainte pour tester existait avant la ALTER TABLE ... DROP CONSTRAINT ....

Dans SSMS, vous pouvez faire un clic droit sur une table, et sélectionnez « dépendances ». Il y a un bouton radio pour sélectionner l'affichage des objets qui dépendent de la table dbo.SellVehicles, ou les choses que la table dbo.SellVehicles dépend.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top