轉自: 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 ----------------------------------------------------------