sql >> Base de Datos >  >> RDS >> Sqlserver

Encontrar una restricción de clave principal sobre la marcha en SQL Server 2005

Si bien la mejor práctica típica es nombrar siempre explícitamente sus restricciones, puede obtenerlas dinámicamente desde las vistas del catálogo:

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 ...