当前位置: 代码迷 >> SQL >> SqlServer禁用、起用外键约束
  详细解决方案

SqlServer禁用、起用外键约束

热度:112   发布时间:2016-05-05 15:08:50.0
SqlServer禁用、启用外键约束
---启用or禁用指定表所有外键约束alter table PUB_STRU  NOCHECK constraint all;alter table PUB_STRU  CHECK constraint all;

?

---生成启用or禁用指定表外键约束的sqlselect '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 : 是否已禁用

  相关解决方案