删除和重建在SQL Server约束(Dropping and recreating Constra

2019-11-04 10:09发布

我做下面的SQL操作

insert Component values (201, 19, 1, 'Statements', 1, 10)

我不得不将其恢复使用脚本,我下面做

delete from Component where ComponentID = 201 and ComponentTypeID = 19

这个问题是我下面得到一个错误

DELETE语句冲突与基准约束“FK_Component_ComponentType”。 冲突发生于数据库“测试”,表“组件”,列“ComponentTypeID”。

所以我在做什么来解决这个问题是下降的约束和添加回来时,我做了删除的行象下面

alter table Component   drop
        FK_Component_ComponentType

然后将它添加回

ALTER TABLE [dbo].[Component]  WITH CHECK ADD  CONSTRAINT [FK_Component_ComponentType] FOREIGN KEY([ComponentTypeID])
REFERENCES [dbo].[ComponentType] ([ComponentTypeID])
ALTER TABLE [dbo].[Component] CHECK CONSTRAINT [FK_Component_ComponentType]

我的问题是,这是做它的正确途径,也有在删除和重建约束任何伤害? 会不会出现在这次行动中的任何数据丢失或任何其他问题?

Answer 1:

你真的不应该需要下降,除非你真的摆脱外键值的重新创建这样的限制。 它看起来像您在另一FK约束

Element.ComponentType REFERENCES Component.ComponentType

检查dbo.Element您的外键,看看是否需要删除/修改它。



文章来源: Dropping and recreating Constraints in SQL Server