Uncategorized

TestSCript

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET NOCOUNT ON
GO

DECLARE @SchemaName NVARCHAR(128)
DECLARE @TableName NVARCHAR(128)
DECLARE @ConstraintName NVARCHAR(128)
DECLARE @Stmt NVARCHAR(MAX)
DECLARE @FKsToDel TABLE ([SchemaName] NVARCHAR(128) NOT NULL,
             [TableName] NVARCHAR(128),
             [ConstraintName] NVARCHAR(128),
             PRIMARY KEY ([SchemaName], [TableName], [ConstraintName]))

INSERT INTO @FKsToDel 
  ( [SchemaName], [TableName], [ConstraintName] )
SELECT [s].[name], [t].[name], [c].[name]
FROM [sys].[objects] AS [c]
  INNER JOIN [sys].[tables] AS [t] ON [c].[parent_object_id] = [t].[object_id]
  INNER JOIN [sys].[schemas] AS [s]  ON [t].[schema_id] = [s].[schema_id]
WHERE [c].[type] IN ('F') AND [s].[name] IN (/*Fill list*/)
    
WHILE EXISTS (SELECT * FROM @FKsToDel)
BEGIN
    
  SELECT TOP(1)
    @SchemaName = [SchemaName],
    @TableName = [TableName],
    @ConstraintName = [ConstraintName]
  FROM @FKsToDel
  ORDER BY [SchemaName], [TableName], [ConstraintName]

  PRINT 'ALTER TABLE ' + QUOTENAME(@SchemaName) + N'.' + QUOTENAME(@TableName) + 
      N' DROP CONSTRAINT ' + QUOTENAME(@ConstraintName) + ';' + CHAR(13) + 'GO'

  DELETE FROM @FKsToDel WHERE [SchemaName] = @SchemaName AND [TableName] = @TableName AND [ConstraintName] = @ConstraintName

END
GO