批量删除MSSQL 中主外键约束
程序员文章站
2022-05-27 08:21:57
转自: http://www.maomao365.com/?p=813 在制作 MSSQL同步工具的时候,发现由于主外键的约束,导致数据同步异常,所有我们需要把 读数据库里面的主外键约束,进行批量删除操作. 1 如何批量查询数据库的主外键? 在MSSQL2005以上版本中,系统提供一个系统视图 sy ......
转自: 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 ----------------------------------------------------------