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