martes, 14 de febrero de 2012

Eliminar columna con restricciones en SQL Server

Para que no haya error y no tener que buscar el nombre de la restricción generada automáticamente por el sistema a una columna podemos utilizar la siguiente SQL:

declare @default sysname, @sql nvarchar(max)

select @default = name
from sys.default_constraints
where parent_object_id = object_id('MYTABLENAME')
AND type = 'D'
AND parent_column_id = (
select column_id
from sys.columns
where object_id = object_id('MYTABLENAME')
and name = 'MYCOLUMNNAME'
)

set @sql = N'alter table MYTABLENAME drop constraint ' + @default
exec sp_executesql @sql

alter table MYTABLENAME drop column MYCOLUMNNAME

go

Remplazar MYTABLENAME por el nombre de la tabla y MYCOLUMNSAME por el nombre de la columna.

1 comentario: