Sql Server有主外键关系时添加删除数据

Posted 很久很久以前

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sql Server有主外键关系时添加删除数据相关的知识,希望对你有一定的参考价值。

当表之间有主外键关系时删除数据会被约束,添加、删除失败

解决办法,我们可以先把主外键关系的检查约束给关掉 → 然后删除数据 → 之后再把约束打开

查询出关掉所有外键约束的语句

SELECT 
ALTER TABLE  + O.NAME +  NOCHECK CONSTRAINT [ + F.NAME + ]; AS COMMAND 
FROM 
SYS.FOREIGN_KEYS F INNER JOIN SYS.ALL_OBJECTS O ON F.PARENT_OBJECT_ID = O.OBJECT_ID 
WHERE O.TYPE = U AND F.TYPE = F;

查询出开启所有外键约束的语句,与上面的区别是将 NOCHECK 改为 CHECK

SELECT 
ALTER TABLE  + O.NAME +  CHECK CONSTRAINT [ + F.NAME + ]; AS COMMAND 
FROM 
SYS.FOREIGN_KEYS F INNER JOIN SYS.ALL_OBJECTS O ON F.PARENT_OBJECT_ID = O.OBJECT_ID 
WHERE O.TYPE = U AND F.TYPE = F;

 

以上是关于Sql Server有主外键关系时添加删除数据的主要内容,如果未能解决你的问题,请参考以下文章

SQLserver数据库中,在啥情况下删除数据不能成功?

SQL中有主外键的两表到底那这是主表

Sql server怎样创建主外键关系

Sql server怎样创建主外键关系

SQL Server语句创建数据库和表——并设置主外键关系

hibernate 在有主外键关系的表中插入数据