2008-10-30 9 views
5

yo probamos este:Cómo eliminar un campo de tabla SQLServer2005

ALTER TABLE My.Table DROP MyField 

y tiene este error:

-MyField no es una limitación.

- No se puede eliminar la restricción. Ver errores previos.

Solo hay una fila de datos en la tabla y el campo acaba de ser agregado.

EDITAR: Solo para seguir, el sql faltaba COLUMN de hecho. Ahora tengo errores aún más serio que buscan sin embargo:

  • Los some_object__somenumbers '' objeto es dependiente de la columna 'MiCampo'
  • COLUMNA ALTER TABLE DROP MiCampo fracasó debido a uno o más objetos de acceso a esta columna.

EDIT:

ALTER TABLE TableName DROP Constraint ConstraintName 

trabajó, después de que yo era capaz de utilizar el código anterior para eliminar la columna. El crédito va para ustedes dos, gracias.

+0

Has etiquetado este 'mysql', pero la pregunta dice SQLServer 2005. Podrías dar más detalles. –

+0

Mi error, debería ser mssql, pero alguien ya lo ha actualizado. – Maciej

Respuesta

4

Brian resuelto el problema original - para su nuevo problema (Las '' some_object__somenumbers objeto es dependiente de la columna 'MiCampo') significa que tienes un problema de dependencia. Algo así como un índice, referencia de clave externa, valor por defecto, etc. Para excluir el uso restricción:

ALTER TABLE TableName DROP ConstraintName 

también - que necesita para retirar todos los obstáculos que dependen de esa columna antes de que te deje caer el columna en sí

10

Creo que sólo se echa en falta la palabra clave COLUMNA:

ALTER TABLE TableName DROP COLUMN ColumnName 

Usted también tendrá que asegurarse de que cualquier restricción que está en función de ColumnName se cae primero.

Usted puede hacer esto por:

ALTER TABLE TableName DROP ConstraintName 

Para cada restricción que tiene.

Si tiene índices basados ​​en la columna, también deberá soltar esos índices primero.

DROP INDEX TableName.IndexName 
0
ALTER TABLE TABLE_NAME ADD COLUMN SR_NO INTEGER(10)NOT NULL; 
Cuestiones relacionadas