İpucu #3 : Remove All Foreign Keys

April 6, 2010

Bazen tasarımda hata yaptığımızda tüm foreign key leri silip yeniden oluşturmamız gerebilir. Aşağıdaki script bu işleme yardımcı olmaktadır. Bu script de SQL server da bulunan INFORMATION_SCHEMA içerisindeki TABLE_CONSTRAINTS view i bize yardımcı olacak.

select * from INFORMATION_SCHEMA.TABLE_CONSTRAINTS

Constraints

Bu sorgudan elde edilen sonuçları Alter Table ifadesi ile birleştirirsek Foreign Keyleri sistemden silen sorguyuda elde etmiş oluruz.

while(exists(select 1 from INFORMATION_SCHEMA.TABLE_CONSTRAINTS where CONSTRAINT_TYPE='FOREIGN KEY'))
begin
	declare @sql nvarchar(2000)
	SELECT TOP 1 @sql=('ALTER TABLE ' + TABLE_SCHEMA + '.[' + TABLE_NAME
	+ '] DROP CONSTRAINT [' + CONSTRAINT_NAME + ']')
	FROM information_schema.table_constraints
	WHERE CONSTRAINT_TYPE = 'FOREIGN KEY'
	exec (@sql)
end

Leave Your Comment

 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org