Alle foreign keys verwijderen op een tabel met T-SQL

Vandaag moest ik alle foreign keys op een aantal tabellen verwijderen, zodat ik daarna de structuur om kon gooien.
Aangezien dit een tijdrovend klusje kon worden heb ik er een t-sql scriptje voor gemaakt:

DECLARE FKcursor CURSOR FOR 
SELECT S.name, F.name, T.name FROM sys.foreignkeys 
JOIN sys.tables T ON F.parentobjectid=T.objectid
JOIN sys.schemas S ON S.schemaid=T.schemaid 
WHERE T.name in ('table1', 'table2')

OPEN FKcursor 
DECLARE @shemaName sysname, @fkName sysname, @tableName sysname
FETCH NEXT FROM FKcursor INTO @shemaName, @fkName, @tableName 

WHILE (@@FETCHSTATUS > -1)
BEGIN 
    PRINT 'Dropping constraint ' + @fkName + ' on table ' 
    + @shemaName + '.' + @tableName 

    EXECUTE ('ALTER TABLE [' + @shemaName + '].[' + @tableName + '] 

    DROP CONSTRAINT [' + @fkName + ']')

    FETCH NEXT FROM FK_cursor INTO @shemaName, @fkName, @tableName 
END 

Ronald Harmsen

I'm a software developer. When I'm not developing software I'm training & coaching other developers, speaking on a conference or fiddling with some technical stuff.

Arnhem, The Netherlands

Subscribe to Ronald to the cloud

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!