SQL Server’da Seçili Veritabanındaki Tüm Foreign Keyleri Kaldıran Cursor

Herkese merhaba,

Bu yazıda sizlere SQL Server’da seçili veritabanındaki tüm Foreign Keylerin Cursor yardımıyla kaldırılması hakkında bilgi vereceğim.

SQL Server’da bazı durumlarda tüm foreign keyleri kaldırma ihtiyacınız olabilir.

Aşağıdaki sorguyu kullanarak bu işlemi tek seferde çözebilirsiniz.

DECLARE @name VARCHAR(128);
DECLARE @constraint VARCHAR(254);
DECLARE @SQL VARCHAR(254);
SELECT @name =
(
    SELECT TOP 1
           TABLE_NAME
    FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
    WHERE CONSTRAINT_CATALOG = DB_NAME()
          AND CONSTRAINT_TYPE = 'FOREIGN KEY'
    ORDER BY TABLE_NAME
);
WHILE @name IS NOT NULL
BEGIN
    SELECT @constraint =
    (
        SELECT TOP 1
               CONSTRAINT_NAME
        FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
        WHERE CONSTRAINT_CATALOG = DB_NAME()
              AND CONSTRAINT_TYPE = 'FOREIGN KEY'
              AND TABLE_NAME = @name
        ORDER BY CONSTRAINT_NAME
    );
    WHILE @constraint IS NOT NULL
    BEGIN
        SELECT @SQL = 'ALTER TABLE [dbo].[' + RTRIM(@name) + '] DROP CONSTRAINT [' + RTRIM(@constraint) + ']';
        EXEC (@SQL);
        PRINT 'Kaldırılar FK Constraintler : ' + @constraint + ' on ' + @name;
        SELECT @constraint =
        (
            SELECT TOP 1
                   CONSTRAINT_NAME
            FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
            WHERE CONSTRAINT_CATALOG = DB_NAME()
                  AND CONSTRAINT_TYPE = 'FOREIGN KEY'
                  AND CONSTRAINT_NAME <> @constraint
                  AND TABLE_NAME = @name
            ORDER BY CONSTRAINT_NAME
        );
    END;
    SELECT @name =
    (
        SELECT TOP 1
               TABLE_NAME
        FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
        WHERE CONSTRAINT_CATALOG = DB_NAME()
              AND CONSTRAINT_TYPE = 'FOREIGN KEY'
        ORDER BY TABLE_NAME
    );
END;

Sorguyu çalıştırdığınız zaman aşağıdaki gibi bir çıktı göreceksiniz.

SQL Server’da Seçili Veritabanındaki Tüm Foreign Keyleri Kaldıran Cursor

Görüldüğü üzere tüm foreign keyler kaldırılmış oldu.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

288 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!