码迷,mamicode.com
首页 > 数据库 > 详细

SQLServer禁用、启用外键约束

时间:2014-10-30 20:52:50      阅读:305      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   os   ar   使用   for   sp   数据   

---启用or禁用指定表所有外键约束  
alter table PUB_STRU  NOCHECK constraint all;  
alter table PUB_STRU  CHECK constraint all;  
  
---生成启用or禁用指定表外键约束的sql  
select ‘ALTER TABLE ‘ + b.name + ‘ NOCHECK CONSTRAINT ‘ + a.name +‘;‘  from sysobjects a ,sysobjects b where a.xtype =‘f‘ and a.parent_obj = b.id and b.name=‘表名‘;  
select ‘ALTER TABLE ‘ + b.name + ‘ CHECK CONSTRAINT ‘ + a.name +‘;‘  from sysobjects a ,sysobjects b where a.xtype =‘f‘ and a.parent_obj = b.id and b.name=‘表名‘;  

--生成的sql如下
ALTER TABLE PUB_STRU NOCHECK CONSTRAINT PUBSTRU_FK1; 
ALTER TABLE PUB_STRU NOCHECK CONSTRAINT PUBSTRU_FK2; 
ALTER TABLE PUB_STRU CHECK CONSTRAINT PUBSTRU_FK1; 
ALTER TABLE PUB_STRU CHECK CONSTRAINT PUBSTRU_FK2;   

 --查看约束状态(查询字典表 sys.foreign_keys,该字典表开始出现于sqlserver2005及以上版本):
select name , is_disabled from sys.foreign_keys order by name;  
 --其中:name  : 外键约束名称   is_disabled : 是否已禁用

  

例子:

 --删除外键
alter table AdItem drop constraint AdOrder_AdItem_FK1

--增加外键
alter table AdItem 
add constraint AdOrder_AdItem_FK1 foreign key (AI_nOrderNo) references AdOrder(AO_nOrderNo)

--单个表的一个外键
alter table Student nocheck constraint FK__Student__SchoolN__4222D4EF  
alter table Student check constraint FK__Student__SchoolN__4222D4EF  

--单个表的所有外键
alter table Student nocheck constraint all  
alter table Student check constraint all  

--某个数据库的所有表
EXEC sp_MSforeachtable @command1=‘alter table ?  NOCHECK constraint all;
EXEC sp_MSforeachtable @command1=‘alter table ?  CHECK constraint all;

 

参考:
 Enable/Disable Constraint in SQLServer 
 sp_MSforeachtable使用方法

SQLServer禁用、启用外键约束

标签:style   blog   http   os   ar   使用   for   sp   数据   

原文地址:http://www.cnblogs.com/gguozhenqian/p/4063548.html

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