• SQLServer禁用、启用外键约束


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    ---启用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 : 是否已禁用

      

    例子:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    --删除外键
    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使用方法

    --启用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 : 是否已禁用

      

    例子:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    --删除外键
    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使用方法

  • 相关阅读:
    $NOIp2018$劝退记
    Markdown 使用技巧
    【题解】 bzoj2462: [BeiJing2011]矩阵模板
    【总结】字符串hash
    【题解】 bzoj3555: [Ctsc2014]企鹅QQ (字符串Hash)
    【题解】 bzoj3916: [Baltic2014]friends (字符串Hash)
    【题解】 bzoj2982: combination (Lucas定理)
    【题解】 bzoj1135: [POI2009]Lyz (线段树+霍尔定理)
    【题解】 bzoj3693: 圆桌会议 (线段树+霍尔定理)
    【题解】 AtCoder ARC 076 F
  • 原文地址:https://www.cnblogs.com/dragon2017/p/9708289.html
Copyright © 2020-2023  润新知