ver usa una tablas tabla sp_depends relacion quitar objetos listar las donde dependencias como columna buscar sql sql-server sql-server-2008 dependencies sql-drop

usa - ¿Cómo se suelta una columna con dependencias de objetos en SQL Server 2008?



ver dependencias de una columna sql server (5)

¿Lo intentaste primero?

ALTER TABLE <tablename> DROP CONSTRAINT defEmptyString;

?

El mensaje de error que obtengo al intentar eliminar una columna:

El objeto ''defEmptyString'' depende de la columna ''fkKeywordRolleKontakt''.

Msg 5074, Nivel 16, Estado 1, Línea 43

ALTER TABLE DROP COLUMN fkKeywordRolleKontakt falló porque uno o más objetos accedieron a esta columna.

Ya he intentado encontrar las restricciones predeterminadas, como se describe aquí: Columna caída de SQL Server 2005 con restricciones

Desafortunadamente sin ningún éxito :( La línea devuelta es:

fkKeywordRolleKontakt 2 814625945 0 defEmptyString

Y no puedo eliminar fkKeywordRolleKontakt y defEmptyString .

¿Cuál es la forma correcta de deshacerse de esta dependencia?

EDITAR: Tal vez esto también es importante. La columna fkKeywordRolleKontakt es de tipo udKeyword (nvarchar (50)) con el dbo.defEmptyString predeterminado.


Edición 2: resuelto

Podría resolver el problema ahora. Lo siento, no copié el mensaje de error completo, que era:

Msg 5074, Level 16, State 1, Line 1
The object ''defEmptyString'' is dependent on column ''fkKeywordRolleKontakt''.
Msg 5074, Level 16, State 1, Line 1
The object ''FK_tlkpRolleKontakt_tlkpKeyword'' is dependent on column ''fkKeywordRolleKontakt''.
Msg 4922, Level 16, State 9, Line 1
ALTER TABLE DROP COLUMN fkKeywordRolleKontakt failed because one or more objects access this column.

Podría generar un script para eliminar la columna haciendo clic con el botón derecho en la entrada de la columna (dbo.tlkpRolleKontakt> Columnas> fkKeywordRolleKontakt) (en MSSQL Server Manager), seleccionando Modificar y borrando la columna. Luego, Table Designer> Generar cambio de script generó los comandos necesarios:

ALTER TABLE dbo.tlkpRolleKontakt DROP CONSTRAINT FK_tlkpRolleKontakt_tlkpKeyword EXECUTE sp_unbindefault N''dbo.tlkpRolleKontakt.fkKeywordRolleKontakt'' ALTER TABLE dbo.tlkpRolleKontakt DROP COLUMN fkKeywordRolleKontakt

Eso es :)


Me encontré con una solución más simple.

  1. BORRAR los datos de esa columna.
  2. Una vez que la columna no tiene valor dentro de ella,

ALTER TABLE <table_name> DROP COLUMN <column_name>

De esta manera la columna se deja caer fácilmente.

PD: esto es un dolor de cabeza si tiene cantidades extremas de datos en la columna.


Podría resolver el problema ahora. Lo siento, no copié el mensaje de error completo, que era:

Msg 5074, Nivel 16, Estado 1, Línea 1
El objeto ''defEmptyString'' depende de la columna ''fkKeywordRolleKontakt''.

Msg 5074, Nivel 16, Estado 1, Línea 1
El objeto ''FK_tlkpRolleKontakt_tlkpKeyword'' depende de la columna ''fkKeywordRolleKontakt''.
Mensaje 4922, nivel 16, estado 9, línea 1 ALTER TABLE DROP COLUMN fkKeywordRolleKontakt falló porque uno o más objetos accedieron a esta columna.

Podría generar un script para eliminar la columna haciendo clic con el botón derecho en la entrada de la columna (dbo.tlkpRolleKontakt> Columnas> fkKeywordRolleKontakt) (en MSSQL Server Manager), seleccionando Modificar y borrando la columna. Luego, Table Designer> Generar cambio de script generó los comandos necesarios:

ALTER TABLE dbo.tlkpRolleKontakt DROP CONSTRAINT FK_tlkpRolleKontakt_tlkpKeyword EXECUTE sp_unbindefault N''dbo.tlkpRolleKontakt.fkKeywordRolleKontakt'' ALTER TABLE dbo.tlkpRolleKontakt DROP COLUMN fkKeywordRolleKontakt


Utilice este script para cancelar la comprobación de restricción:

ALTER TABLE @tablename NOCHECK CONSTRAINT @constraintname


suelte la restricción que depende de esa columna con

ALTER TABLE TableName DROP CONSTRAINT dependent_constraint

Luego suelte la columna:

ALTER TABLE TABLE_NAME DROP COLUMN COLUMN_NAME

dependencia_dependiente : esta restricción se muestra en el error cuando intentamos eliminar la columna dependiente.

Ejemplo: tratando de eliminar alguna columna IsDeleted2

Error

El objeto ''DF__Employees__IsDel__15502E78'' depende de la columna ''IsDeleted2''.

ALTER TABLE DROP COLUMN IsDeleted2 falló porque uno o más objetos acceden a esta columna.

El error indica claramente que debemos eliminar la restricción DF__Employees__IsDel__15502E78

ALTER TABLE Employess DROP CONSTRAINT DF__Employees__IsDel__15502E78;

Columna ALTER TABLE Employess DROP COLUMN IsDelted2 : ALTER TABLE Employess DROP COLUMN IsDelted2