码迷,mamicode.com
首页 > 其他好文 > 详细

循环删除外键约束

时间:2020-03-01 10:42:09      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:png   exec   etc   int   lte   cat   name   where   cursor   

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中设置如下

技术图片

循环删除外键约束

标签:png   exec   etc   int   lte   cat   name   where   cursor   

原文地址:https://www.cnblogs.com/rovedog/p/12388278.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!