循环删除外键约束

Posted rovedog

tags:

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

SQL删除,有外键约束常常不能删除,需要先删除外键

 

--/***********PowerBy:rovedog ***************/
--/第1步**********删除所有表的外键约束*************************/

DECLARE c1 CURSOR  FOR 
SELECT  alter table [+ object_name(parent_obj) + ] drop constraint [+name+]; 
FROM  sysobjects
WHERE  xtype = F
OPEN  c1
DECLARE  @c1 varchar(8000)
FETCH  NEXT  FROM  c1 INTO  @c1
WHILE (@@fetch_status=0)
BEGIN 
EXEC (@c1)
FETCH  NEXT  FROM  c1 INTO  @c1
END 
CLOSE  c1
DEALLOCATE  c1

--/第2步**********删除所有表*************************/

DECLARE  @sql varchar(8000)
WHILE  (select count(*) FROM  sysobjects WHERE  type=U)>0
BEGIN 
SELECT @sql=drop table [ + name+]
FROM sysobjects
WHERE (type = U)
ORDER BY drop table [ + name+]
EXEC (@sql) 
END 

 常常在PD中设置如下

技术图片

以上是关于循环删除外键约束的主要内容,如果未能解决你的问题,请参考以下文章

oracle 删除外键约束 禁用约束 启用约束

高级c#中三层架构中存在外键约束怎么删除

sql server怎样删除外键约束?

SQL表与表之间建立外键约束之后,怎么建立连级更新和删除?

mysql 错误代码1217 MYSQL外键约束检查失败,删除或修改主表记录失败 怎么解决啊

Laravel 关于删除完整性约束违规:1451 无法删除或更新父行:外键约束失败