即使本身不存在约束,添加约束也会发生冲突

戴夫

我正在将删除级联添加到表中。Clone表具有一列DeviceID该列是该Device表的DeviceID的外键因此,SQL脚本会删除原始的FK约束,并尝试添加新的约束:

IF EXISTS
(
    SELECT *
    FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
    WHERE CONSTRAINT_NAME = 'FK_Clone_Device'
)
BEGIN
    ALTER TABLE Clone
    DROP CONSTRAINT FK_Clone_Device
END

IF NOT EXISTS
(
    SELECT *
    FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
    WHERE CONSTRAINT_NAME = 'FK_Clone_Device_Cascade'
)
BEGIN
    ALTER TABLE Clone
    ADD CONSTRAINT FK_Clone_Device_Cascade
    FOREIGN KEY (DeviceID) REFERENCES Device(DeviceID) ON DELETE CASCADE
END

运行此脚本时,出现以下错误:

 The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "FK_Clone_Device_Cascade". The conflict occurred in database "DevelopmentDB", table "dbo.Device", column 'DeviceID'.

也许我误解了错误消息,但听起来好像是与自身冲突。我很困惑,Device虽然它发生在桌子上。

Clone表格上有一个索引DeviceID那会重要吗?

这是在SQL SERVER R2(Azure)上

塔布·阿勒曼

听起来您当前表中的数据可能会违反您尝试创建的FK。一种测试方法是在ALTER TABLE语句中添加“ WITH(NOCHECK)”,然后查看是否可以创建约束。

如果确实允许您使用NOCHECK创建约束,则可以保留该约束,而该约束将仅用于测试将来的插入/更新,也可以调查数据以解决FK违例问题。

因此,您的示例将是:

ALTER TABLE Clone WITH NOCHECK
ADD CONSTRAINT FK_Clone_Device_Cascade
FOREIGN KEY (DeviceID) REFERENCES Device(DeviceID) ON DELETE CASCADE

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

即使本身不存在约束,添加约束也会发生冲突

来自分类Dev

Django 1.9:字段与父模型中不存在的字段发生冲突

来自分类Dev

INSERT语句与FOREIGN KEY约束发生冲突2

来自分类Dev

在细分中使用约束时发生冲突

来自分类Dev

SQL Server中不存在约束

来自分类Dev

约束不存在,无法删除表

来自分类Dev

猫鼬唯一验证错误,即使不存在唯一约束

来自分类Dev

即使键不存在,重复的键值也会违反postgres中的唯一约束?

来自分类Dev

移动文件而不会发生冲突

来自分类Dev

libgdx ContactListener不会发生冲突

来自分类Dev

即使我没有同时使用两个界面,名称也会发生冲突

来自分类Dev

iOS以编程方式生成的视图具有隐藏的约束,导致与自动布局发生冲突

来自分类Dev

即使使用管理员或SQL命令CONSTRAINT不存在,也无法使用postgres删除约束

来自分类Dev

回调约束所针对的方法“ XY”不存在

来自分类Dev

如何删除不存在的外键约束?

来自分类Dev

添加CHECK约束与IS NULL冲突

来自分类Dev

随机填充数组而不会发生冲突的算法

来自分类Dev

为什么我会发生冲突?

来自分类Dev

使用Zurb Foundation和wordpress不会发生冲突

来自分类Dev

运行DHCP服务器而不会发生冲突

来自分类Dev

选择并更新MySQL中的几行而不会发生冲突

来自分类Dev

随机填充数组而不会发生冲突的算法

来自分类Dev

旋转Java中的离散点而不会发生冲突

来自分类Dev

文件校验和是否会发生冲突?

来自分类Dev

处理器尝试访问不存在的物理地址时会发生什么?

来自分类Dev

当我释放Delphi中可能不存在的内存时会发生什么?

来自分类Dev

如何修复“图像“ pyimage10”不存在”错误,为什么会发生?

来自分类Dev

在Flash ActionScript中调用不存在的方法时会发生什么?

来自分类Dev

dmcrypt:不存在用户空间加密包装时会发生什么?

Related 相关文章

  1. 1

    即使本身不存在约束,添加约束也会发生冲突

  2. 2

    Django 1.9:字段与父模型中不存在的字段发生冲突

  3. 3

    INSERT语句与FOREIGN KEY约束发生冲突2

  4. 4

    在细分中使用约束时发生冲突

  5. 5

    SQL Server中不存在约束

  6. 6

    约束不存在,无法删除表

  7. 7

    猫鼬唯一验证错误,即使不存在唯一约束

  8. 8

    即使键不存在,重复的键值也会违反postgres中的唯一约束?

  9. 9

    移动文件而不会发生冲突

  10. 10

    libgdx ContactListener不会发生冲突

  11. 11

    即使我没有同时使用两个界面,名称也会发生冲突

  12. 12

    iOS以编程方式生成的视图具有隐藏的约束,导致与自动布局发生冲突

  13. 13

    即使使用管理员或SQL命令CONSTRAINT不存在,也无法使用postgres删除约束

  14. 14

    回调约束所针对的方法“ XY”不存在

  15. 15

    如何删除不存在的外键约束?

  16. 16

    添加CHECK约束与IS NULL冲突

  17. 17

    随机填充数组而不会发生冲突的算法

  18. 18

    为什么我会发生冲突?

  19. 19

    使用Zurb Foundation和wordpress不会发生冲突

  20. 20

    运行DHCP服务器而不会发生冲突

  21. 21

    选择并更新MySQL中的几行而不会发生冲突

  22. 22

    随机填充数组而不会发生冲突的算法

  23. 23

    旋转Java中的离散点而不会发生冲突

  24. 24

    文件校验和是否会发生冲突?

  25. 25

    处理器尝试访问不存在的物理地址时会发生什么?

  26. 26

    当我释放Delphi中可能不存在的内存时会发生什么?

  27. 27

    如何修复“图像“ pyimage10”不存在”错误,为什么会发生?

  28. 28

    在Flash ActionScript中调用不存在的方法时会发生什么?

  29. 29

    dmcrypt:不存在用户空间加密包装时会发生什么?

热门标签

归档