SQL Server - PROBLEMILLA CON UN ALTER TABLE

 
Vista:

PROBLEMILLA CON UN ALTER TABLE

Publicado por javivi (1 intervención) el 01/02/2007 08:34:15
Hola a todos, tengo un pequeño problema al modificar una columna de una tabla, mi consulta es :

alter table t_accion alter column bol_fuera_plazo_accion integer

y la consulta me devuelve:

Server: Msg 5074, Level 16, State 1, Line 4
The object 'DF__T_ACCION__BOL_FU__0D64F3ED' is dependent on column 'bol_fuera_plazo_accion'.
Server: Msg 4922, Level 16, State 1, Line 4
ALTER TABLE ALTER COLUMN bol_fuera_plazo_accion failed because one or more objects access this column.

puedo borrar esa constraint 'DF__T_ACCION__BOL_FU__0D64F3ED' con un drop constraint, pero el problema es que devo hacer el alter en muchas BD que poseen esa tabla y 'DF__T_ACCION__BOL_FU__ es diferente para cada base de datos, hay alguna forma de eliminar esa constraint de todas las BD al mismo tiempo o devo ir eliminando una por cada BD.

Alguien me puede hechar un cable??? Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:PROBLEMILLA CON UN ALTER TABLE

Publicado por Isaías (3308 intervenciones) el 01/02/2007 20:40:53
-- D.R. Bryce Newman
-- Elimina todos los constrains dependientes de una columna
DECLARE @TableID INT
DECLARE @ConstraintID INT
DECLARE @ConstraintName VARCHAR(50)
SET @TableID = (SELECT id FROM sysobjects WHERE (name = N'<TableName>'))
SET @ConstraintID = (SELECT cdefault FROM syscolumns WHERE (id = @TableID) AND (name = N'<ColumnName>'))
SET @ConstraintName = (SELECT name FROM sysobjects WHERE (id = @ConstraintID))

IF @ConstraintName <> '' BEGIN
DECLARE @sql varchar(200)
SET @sql = 'ALTER TABLE <TableName> DROP CONSTRAINT ' + @ConstraintName
EXEC(@sql)
END

SET @sql = 'ALTER TABLE <TableName> DROP COLUMN <ColumnName>'
EXEC(@sql)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar