How To Drop All Foreign Keys in a MS SQL Server Database

Today I needed to remove all foreign keys in a database. This was necessary because I was building a script to build a database from an initial import, plus a bunch of new tables, and alter statements.
So I needed a clean slate before running the initial import (DROP + CREATE) script.

The script below completely blows away ALL foreign keys in your DB.

Enjoy!


SET NOCOUNT ON
GO

DECLARE Fkeys CURSOR FOR
SELECT 'ALTER TABLE ' + TABLE_SCHEMA + '.[' + TABLE_NAME + '] DROP CONSTRAINT [' + CONSTRAINT_NAME + ']'
FROM information_schema.table_constraints
WHERE CONSTRAINT_TYPE = 'FOREIGN KEY'

OPEN Fkeys

DECLARE @Statement NVARCHAR(500)

FETCH NEXT FROM Fkeys INTO @statement
WHILE (@@FETCH_STATUS = 0)
BEGIN
   PRINT N'RUNNING ' + @statement
   EXEC sp_executesql @statement
   PRINT CHAR(13) + CHAR(13)
   FETCH NEXT FROM Fkeys INTO @statement
END

CLOSE Fkeys
DEALLOCATE Fkeys
GO
SET NOCOUNT OFF
GO