Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Recherche d'une contrainte de clé primaire à la volée dans SQL Server 2005

Bien que la meilleure pratique typique consiste à toujours nommer explicitement vos contraintes, vous pouvez les obtenir dynamiquement à partir des vues du catalogue :

DECLARE @table NVARCHAR(512), @sql NVARCHAR(MAX);

SELECT @table = N'dbo.PS_userVariables';

SELECT @sql = 'ALTER TABLE ' + @table 
    + ' DROP CONSTRAINT ' + name + ';'
    FROM sys.key_constraints
    WHERE [type] = 'PK'
    AND [parent_object_id] = OBJECT_ID(@table);

EXEC sp_executeSQL @sql;

ALTER TABLE dbo.PS_userVariables ADD CONSTRAINT ...