我有一张桌子上有一堆FKS。

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

我的问题是我忘记了几列,我需要添加它们。我可以通过右键单击表并选择“设计”,但如果我想使它们不为空或删除列,则可以添加它们。我也可以生成一个drop/创建脚本,但是我得到了这个错误:

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

我是否需要仔细阅读并删除每个FK,然后删除/创建,然后将它们添加回或会有快速/无痛的方法来执行此操作?有没有一种方法可以迅速放弃和重新创建这些FK?

为什么不

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

消除此错误? FK是否仍在引用另一个表上?

有帮助吗?

解决方案

触发错误的约束是 不在 dbo.SellVehicles 桌子;在桌子上 参考dbo.SellVehicles 桌子。对颜色,品牌和模型表的引用不是问题 - 您试图在亲子关系中丢下/删除孩子。

我怀疑您测试的约束之前存在 ALTER TABLE ... DROP CONSTRAINT ....

在SSM中,您可以右键单击表格,然后选择“依赖关系”。有一个广播按钮可以选择查看取决于该对象的 dbo.SellVehicles 桌子或那些东西 dbo.SellVehicles 表取决于。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top