Takes database name, schema name, table name and constraint type as parameters.
Valid constraint types are ; 'PRIMARY KEY', 'FOREIGN KEY', 'CHECK'
Usage :
EXEC USP_DropTableConstraints_2005 'AdventureWorksTarget', 'Person', 'Contact', 'CHECK'
CREATE PROCEDURE USP_DropTableConstraints_2005
@dbname VARCHAR(128),
@schemaname VARCHAR(128),
@tablename VARCHAR(128),
@constrainttype VARCHAR(128)
AS
-- USP_DropTableConstraints_2005 by sql solace
DECLARE @sqlstring NVARCHAR(500)
SET @constrainttype = UPPER(LTRIM(RTRIM(@constrainttype)))
WHILE EXISTS (SELECT *
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE CONSTRAINT_CATALOG = @dbname
AND TABLE_SCHEMA = @schemaname
AND TABLE_NAME = @tablename
AND CONSTRAINT_TYPE = @constrainttype)
BEGIN
SELECT @sqlstring = 'ALTER TABLE [' + TABLE_SCHEMA + '].[' + TABLE_NAME + '] DROP CONSTRAINT ' + CONSTRAINT_NAME
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE CONSTRAINT_CATALOG = @dbname
AND TABLE_SCHEMA = @schemaname
AND TABLE_NAME = @tablename
AND CONSTRAINT_TYPE = @constrainttype
PRINT @sqlstring
EXECUTE sp_executesql @sqlstring
END
GO
No comments:
Post a Comment