Mensaje de error No se permite guardar los cambios en SSMS

Este artículo le ayuda a solucionar el problema en el que recibe un mensaje de error al intentar guardar una tabla en SQL Server Management Studio (SSMS).

Versión del producto original: SQL Server
Número KB original: 956176

Síntomas

Al intentar guardar una tabla después de hacer cambios en ella mediante el Diseñador en SQL Server Management Studio, puede recibir el siguiente mensaje de error:

No se permite guardar los cambios. Los cambios que ha realizado requieren que se quiten y vuelvan a crear las siguientes tablas. Quizá ha realizado cambios en una tabla que no se puede volver a crear o ha habilitado la opción Impedir guardar cambios que requieran volver a crear tablas.

Este problema se produce al ejecutar uno o varios de los siguientes cambios en la tabla:

  • Ha cambiado la configuración Permitir nulos para una columna.
  • Ha reordenado las columnas de la tabla.
  • Ha modificado el tipo de datos de columna.
  • Ha añadido una nueva columna.
  • Ha cambiado el filegroup de una tabla o sus datos text/image.

Causa

Este problema se produce porque la opción Impedir que se guarden cambios que requieran volver a crear tablas está habilitada de forma predeterminada en SQL Server Management Studio.

Cuando se cambia una tabla para modificar la estructura de metadatos y, después, la guarda, se debe volver a crear en función de estos cambios. Esto puede dar lugar a la pérdida de metadatos y a una pérdida directa de datos durante la nueva creación de la tabla. Si habilita la opción Impedir que se guarden cambios que requieran volver a crear tablas en la sección Diseñador de la ventana Opciones de SQL Server Management Studio (SSMS), recibirá el mensaje de error que se menciona en la sección Síntomas.

Solución alternativa

Para solucionar este problema, use instrucciones de Transact-SQL ALTER TABLE para llevar a cabo los cambios en la estructura de metadatos de una tabla.

Por ejemplo, para cambiar la columna MyDate del tipo datetime en una tabla denominada MyTable y que acepte valores nulos, puede usar:

alter table MyTable alter column MyDate7 datetime NULL

Importante

Se recomienda encarecidamente no solucionar este problema desactivando la opción Impedir que se guarden cambios que requieran volver a crear tablas. Para obtener más información sobre los riesgos de desactivar esta opción, consulte la sección Más información.

Más información

Para modificar la opción Impedir que se guarden cambios que requieran volver a crear tablas, siga estos pasos:

  1. Abra SQL Server Management Studio.

  2. En el menú Herramientas, haga clic en Opciones.

  3. En el panel de navegación de la ventana Opciones, haga clic en Diseñadores.

  4. Active o desactive la casilla Impedir que se guarden cambios que requieran volver a crear tablas y, después, haga clic en Aceptar.

Nota:

Si deshabilita esta opción, no se le advertirá al guardar la tabla de que los cambios han modificado su estructura de metadatos. En este caso, puede producirse una pérdida de datos al guardarla.

Riesgo de desactivar la opción Impedir que se guarden cambios que requieran volver a crear tablas

Aunque desactivar esta opción puede ayudarle a evitar volver a crear una tabla, también puede provocar la pérdida de los cambios. Por ejemplo, supongamos que habilita la característica de Seguimiento de cambios en SQL Server para llevar a cabo un seguimiento de los cambios en la tabla. Al ejecutar una operación que haga que la tabla se vuelva a crear, recibirá el mensaje de error que se menciona en la sección Síntomas. Sin embargo, si desactiva esta opción, la información de seguimiento de cambios existente se elimina cuando se vuelve a crear la tabla. Por lo tanto, se recomienda no solucionar este problema desactivando esta opción.

Para determinar si la característica Seguimiento de cambios está habilitada para una tabla, siga estos pasos:

  1. En SQL Server Management Studio, busque la tabla en el Explorador de objetos.
  2. Haga clic con el botón derecho en la tabla y, después, haga clic en Propiedades.
  3. En el cuadro de diálogo Propiedades de tabla, haga clic en Seguimiento de cambios. Si el valor del elemento Seguimiento de cambios es Verdadero, esta opción está habilitada para la tabla. Si el valor es Falso, esta opción está deshabilitada.

Cuando la característica Change Tracking está habilitada, use instrucciones de Transact-SQL para cambiar la estructura de metadatos de la tabla.

Pasos para reproducir el problema

  1. En SQL Server Management Studio, cree una tabla que contenga una clave principal en la herramienta Diseñador de tablas.
  2. Haga clic con el botón derecho en la base de datos que contiene la tabla y luego haga clic en Propiedades.
  3. En el cuadro de diálogo Propiedades de la base de datos, haga clic en Seguimiento de cambios.
  4. Establezca el valor del elemento Seguimiento de cambios en Verdadero y, después, haga clic en Aceptar.
  5. Haga clic con el botón derecho en la tabla y, después, haga clic en Propiedades.
  6. En el cuadro de diálogo Propiedades de tabla, haga clic en Seguimiento de cambios.
  7. Establezca el valor del elemento Seguimiento de cambios en Verdadero y, después, haga clic en Aceptar.
  8. En el menú Herramientas, haga clic en Opciones.
  9. En el cuadro de diálogo Opciones, haga clic en Diseñadores.
  10. Haga clic para seleccionar la casilla Impedir que se guarden cambios que requieran volver a crear tablas y en Aceptar.
  11. En la herramienta Diseñador de tablas, cambie la configuración Permitir nulos en una columna existente.
  12. Intente guardar el cambio en la tabla.