• 查询与删除MSSQL中所有外键约束


    查询:

    SELECT 主键列ID=b.rkey 
        ,主键列名=(SELECT name FROM syscolumns WHERE colid=b.rkey AND id=b.rkeyid) 
        ,外键表ID=b.fkeyid 
        ,外键表名称=object_name(b.fkeyid) 
        ,外键列ID=b.fkey 
        ,外键列名=(SELECT name FROM syscolumns WHERE colid=b.fkey AND id=b.fkeyid) 
        ,级联更新=ObjectProperty(a.id,'CnstIsUpdateCascade') 
        ,级联删除=ObjectProperty(a.id,'CnstIsDeleteCascade') 
    FROM sysobjects a 
        join sysforeignkeys b on a.id=b.constid 
        join sysobjects c on a.parent_obj=c.id 

    删除:

        declare @sql varchar(max),
     @tab_name varchar(128),
     @fk_name varchar(128);
    declare c cursor for
    select OBJECT_NAME(parent_object_id), name from sys.objects where type='F'
    
    open c
    fetch next from c into @tab_name, @fk_name 
    while @@FETCH_STATUS=0
    begin 
     set @sql='';
     set @sql='alter table ' + @tab_name + ' drop constraint ' + @fk_name
     print @sql
     exec(@sql)
     
     fetch next from c into @tab_name, @fk_name
    end
    close c
    deallocate c

    使用方法:

    打开数据库,转到要操作的那一个库,执行上面的代码即可

  • 相关阅读:
    周总结9
    TDtree冲刺第十天
    规划极限编程阅读笔记03
    TDtree冲刺第九天
    TDtree第八天
    规划极限编程阅读笔记02
    TDtree冲刺第七天
    周总结8
    TDtree冲刺第六天
    11/1
  • 原文地址:https://www.cnblogs.com/qiywtc/p/6963554.html
Copyright © 2020-2023  润新知