zoukankan      html  css  js  c++  java
  • SQLServer禁用、启用外键约束

    ---启用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使用方法

  • 相关阅读:
    初探linux子系统集之led子系统(一)
    金融大数据分析从认知到实践(第1辑)(套装共3册)
    Blender权威指南
    零基础学Python
    中文版Photoshop CC图像处理与设计
    21天学通C++(第4版)
    Python应用开发实战
    电脑办公实战从入门到精通(超值版)
    Windows 10从新手到高手
    21天学通C语言(第7版)
  • 原文地址:https://www.cnblogs.com/gguozhenqian/p/4063548.html
Copyright © 2011-2022 走看看