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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top