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.

SQL Server'da Veritabanındaki Tüm Foreign Key'leri Kaldırmak

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.

202 Kez Okundu