I normally prefer to script the creation of all constraints and use something like this procedure to drop them when needed
😎
CREATE PROCEDURE [dbo].[DROP_SCHEMA_CONSTRAINTS]
(
@TABLE_SCHEMANVARCHAR(128)
)
AS
/*
DECLARE @TABLE_SCHEMANVARCHAR(128) = N'myschema'
EXEC dbo.DROP_SCHEMA_CONSTRAINTS @TABLE_SCHEMA
*/
DECLARE @SQL_STRNVARCHAR(MAX) = N'';
SELECT @SQL_STR = (SELECT N'ALTER TABLE'
+ T.TABLE_SCHEMA + N'.'
+ T.TABLE_NAME + N' DROP CONSTRAINT '
+ T.CONSTRAINT_NAME + N'-- ' + T.CONSTRAINT_TYPE + N'
'
FROM
(
SELECT OBJECT_NAME(OBJECT_ID)AS CONSTRAINT_NAME,
SCHEMA_NAME(schema_id)AS TABLE_SCHEMA,
OBJECT_NAME(parent_object_id)AS TABLE_NAME,
type_descAS CONSTRAINT_TYPE
FROM sys.objects
WHERE type_desc LIKE '%CONSTRAINT'
AND type_desc NOT LIKE 'PRIMARY_KEY%'
) AS T
WHERE T.TABLE_SCHEMA = @TABLE_SCHEMA
FOR XML PATH(''),TYPE).value('.','NVARCHAR(MAX)');
EXEC (@SQL_STR);