转自: http://www.maomao365.com/?p=813
在制作 MSSQL同步工具的时候,发现由于主外键的约束,导致数据同步异常,所有我们需要把 读数据库里面的主外键约束,进行批量删除操作.

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

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
- ----------------------------------------------------------