在企业经理中更新SQL表 - 外国密钥问题
-
04-10-2019 - |
题
我有一张桌子上有一堆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
表取决于。
不隶属于 StackOverflow