J'ai une table avec un ensemble de FK.Mise à jour de la table SQL dans Enterprise Manager - Problèmes de clé étrangère
Table Vehicles
-----------
ColorID -> Color.ID
MakeID -> Make.ID
ModelID -> Model.ID
etc...
Mon problème est que j'ai oublié quelques colonnes et j'ai besoin de les ajouter. Je peux les ajouter en faisant 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.
Ai-je besoin de passer par et supprimer chaque FK puis déposer/créer, puis les ajouter ou est-il un moyen rapide/indolore façon de faire cela? Y a-t-il un moyen d'abandonner et de recréer ces FK rapidement?
Pourquoi ne 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 est-il toujours sur l'autre table référencée?
@Blankasaurus: Oui, vous devez supprimer/désactiver la dépendance sur la table 'dbo.SellVehicles' avant de pouvoir la supprimer. –
C'était une contrainte FK sur la table parente qui faisait référence à la table que j'essayais de modifier. Donc, disons que j'avais 20 dépendances, y a-t-il un moyen rapide de générer un script qui supprimerait/créerait tous les FK sur ces tables qui dépendaient de la table que j'essayais de modifier? – Jason
Désactiver ... Est-ce que "Enforce FK Contraint" = Non? – Jason