Actualización de SQL Enterprise Manager En la Tabla - Cuestiones clave externa
-
04-10-2019 - |
Pregunta
Tengo una tabla con un montón de claves ajenas.
Table Vehicles
-----------
ColorID -> Color.ID
MakeID -> Make.ID
ModelID -> Model.ID
etc...
Mi problema es que me olvidé un par de columnas y necesito para agregarlos. Puedo añadirlas a través de hacer clic derecho sobre la mesa y la elección de 'diseño', pero no si quieres que sean NOT NULL, o eliminar una columna. También podría generar una gota / Crear Script, pero me sale este error:
Msg 3726, Level 16, State 1, Line 4
Could not drop object 'dbo.SellVehicles' because it is referenced by a FOREIGN KEY constraint.
Do necesidad de ir a través y quitar cada FK y luego dejar caer / crear, a continuación, añadir de nuevo o hay una manera rápida / indolora de hacer esto? ¿Hay una manera de eliminar y reconstruir estas FKs rápidamente?
¿Por qué no lo hace
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
eliminar este error? Es el FK todavía en que se hace referencia la otra mesa?
Solución
La restricción de que está provocando el error es no en la mesa dbo.SellVehicles
; está en una tabla que referencias la tabla dbo.SellVehicles
. Las referencias al color, la marca y el modelo mesas no son el problema -. Eres de intentar descartar / eliminar al niño en una relación padre-hijo
Dudo que la restricción de pruebas para existido antes de la ALTER TABLE ... DROP CONSTRAINT ...
.
En SSMS, puede hacer clic derecho sobre una mesa, y seleccione "Dependencias". Hay un botón de radio para seleccionar la visualización de los objetos que dependen de la tabla dbo.SellVehicles
, o las cosas que la mesa dbo.SellVehicles
depende.