• 批量删除MSSQL 中主外键约束


    转自: http://www.maomao365.com/?p=813

    在制作 MSSQL同步工具的时候,发现由于主外键的约束,导致数据同步异常,所有我们需要把 读数据库里面的主外键约束,进行批量删除操作.

    表同步工具

    1 如何批量查询数据库的主外键?
    在MSSQL2005以上版本中,系统提供一个系统视图 sys.foreign_keys 可以查询出系统所有的外键约束
    外键查询sql脚本
    2 如何批量删除数据库的主外间键?

    --------------------------------------------------------------------------
    
    create table #t (keyId int identity,name varchar(200),tbname varchar(200))
    
    insert into #t (name,tbName) 
    select a.name,b.name from sys.foreign_keys a 
    left join sysobjects b on a.parent_object_id = b.id 
    declare @i int,@imax int,@name varchar(200) ,@tbName varchar(200)
    
    select @i=MIN(keyId) from #t 
    select @imax=MAX(keyid) from #t
    
    while @i<=@imax
    begin
    set @name='' 
    set @tbName =''
    select @name =name,@tbName=tbname from #t where keyId=@i
    --print @name 
    --print @tbName 
    
    print(' ALTER TABLE ['+@tbname +'] DROP CONSTRAINT ['+@name+']')
    exec(' ALTER TABLE ['+@tbname +'] DROP CONSTRAINT ['+@name+']')
    
    set @i=@i+1
    end
    
    
    truncate table #t 
    drop table #t
    
    ----------------------------------------------------------

    同步工具,剔除外键约束后,一切正常 

  • 相关阅读:
    Multidimensional Arrays
    TortoiseGit
    Excel教程(14)
    Excel教程(13)
    Excel教程(12)
    Excel教程(11)
    lock
    reflect
    game
    html x
  • 原文地址:https://www.cnblogs.com/lairui1232000/p/9703849.html
Copyright © 2020-2023  润新知