SQL Server’da Veritabanındaki Tüm Foreign Key’leri Kaldırmak
Herkese merhaba,
Bu yazıda SQL Server’da veritabanındaki Tüm Foreign Key’leri kaldırmak ile ilgili bilgi vermeye çalışacağım.
SQL Server’da bazı durumlarda veritabanındaki Tüm Foreign Key’leri Kaldırmak ihtiyacı duyabilirsiniz.
Aşağıdaki kodu kullanarak siz de bu işlemi rahatlıkla yapabilirsiniz.
DECLARE @SQL VARCHAR(MAX) = '';
SELECT @SQL
= @SQL + 'ALTER TABLE ' + QUOTENAME(FK.TABLE_SCHEMA) + '.' + QUOTENAME(FK.TABLE_NAME) + ' DROP CONSTRAINT ['
+ RTRIM(C.CONSTRAINT_NAME) + '];' + CHAR(13)
--SELECT K_Table = FK.TABLE_NAME, FK_Column = CU.COLUMN_NAME, PK_Table = PK.TABLE_NAME, PK_Column = PT.COLUMN_NAME, Constraint_Name = C.CONSTRAINT_NAME
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS C
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS FK
ON C.CONSTRAINT_NAME = FK.CONSTRAINT_NAME
INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS PK
ON C.UNIQUE_CONSTRAINT_NAME = PK.CONSTRAINT_NAME
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE CU
ON C.CONSTRAINT_NAME = CU.CONSTRAINT_NAME
INNER JOIN
(
SELECT i1.TABLE_NAME,
i2.COLUMN_NAME
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS i1
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE i2
ON i1.CONSTRAINT_NAME = i2.CONSTRAINT_NAME
WHERE i1.CONSTRAINT_TYPE = 'PRIMARY KEY'
) PT
ON PT.TABLE_NAME = PK.TABLE_NAME;
--EXEC (@SQL)
PRINT @SQL;
Yukarıdaki kodu çalıştırdığınızda aşağıdakine benzer bir sonuç göreceksiniz.
Görüldüğü üzere Tüm Foreign Key’leri Kaldırma kodu oluşturuldu. Gerisi bu kodları kopyalayıp, ilgili veritabanında çalıştırmak.
Not : Bu işlemi canlı veritabanı üzerinde denemeyin. Sorumluluk size aittir.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.