Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Versión del producto original: SQL Server
Número de KB original: 956176
Summary
Este artículo le ayuda a solucionar el mensaje de error "No se permite guardar cambios" que muestra SQL Server Management Studio (SSMS) al guardar los cambios en el Diseñador de tablas. El error se produce cuando un cambio requiere que SSMS quite y vuelva a crear la tabla, y la opción Impedir guardar los cambios que requieren volver a crear la tabla está habilitada. Para evitar este error y la nueva creación de la tabla que lo provoca, use ALTER TABLE instrucciones Transact-SQL (T-SQL) en lugar del Diseñador de tablas. En este artículo también se explica cómo cambiar la opción y por qué desactivarla puede ser arriesgada, especialmente para las tablas que usan Change Tracking.
Síntomas: error al guardar los cambios de tabla en el Diseñador de tablas
Al intentar guardar una tabla después de realizar cambios en la tabla mediante el Diseñador de tablas 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. 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 la tabla.
Este problema se produce al realizar uno o varios de los siguientes cambios en la tabla:
- Cambie la opción Permitir valores NULL para una columna.
- Reordena las columnas de la tabla.
- Cambia el tipo de datos de la columna.
- Añade una nueva columna.
- Cambia el
filegroupde una tabla o sustext/imagedatos.
Causa: SSMS impide cambios que requieren volver a crear la tabla
Este problema se produce porque la opción Impedir guardar cambios que requieren volver a crear las tablas está habilitada de forma predeterminada en SSMS.
Al cambiar una tabla de una manera que modifique su estructura de metadatos y luego se guarda la tabla, SSMS debe volver a crear la tabla en función de estos cambios. Volver a crear una tabla podría dar lugar a la pérdida de metadatos y a una pérdida directa de datos.
Si la opción Evitar guardar cambios que requieren volver a crear la tabla está habilitada en la sección Diseñadores de la ventana Opciones de SSMS, SSMS bloquea el guardado y aparece el mensaje de error mencionado en la sección Síntomas. Para obtener más información sobre esta opción, vea Opciones (Diseñadores - Página Diseñadores de tablas y bases de datos).
Solución alternativa: usar ALTER TABLE en lugar del Diseñador de tablas
Para solucionar este problema, use instrucciones ALTER TABLE T-SQL para realizar los cambios en la estructura de metadatos de una tabla. Para ejecutar las sentencias, siga estos pasos:
- En SQL Server Management Studio, conéctese a la instancia y, a continuación, seleccione la base de datos que contiene la tabla.
- En la barra de herramientas, seleccione Nueva consulta.
- Escriba la instrucción T-SQL en la ventana de consulta y, a continuación, seleccione Ejecutar.
Necesita el ALTER permiso sobre la tabla para ejecutar sentencias ALTER TABLE.
Por ejemplo, para cambiar la columna MyDate de tipo datetime en una tabla llamada MyTable para aceptar valores NULL, use la instrucción siguiente:
ALTER TABLE MyTable ALTER COLUMN MyDate datetime NULL;
Para agregar una nueva columna denominada MyNewColumn de tipo int que acepte valores NULL en la misma tabla, use la instrucción siguiente:
ALTER TABLE MyTable ADD MyNewColumn int NULL;
Importante
Se recomienda encarecidamente no solucionar este problema desactivando la opción Impedir guardar los cambios que requieren volver a crear la tabla . Para obtener más información sobre los riesgos de desactivar esta opción, consulte Riesgo de desactivar la opción "Evitar guardar cambios que requieren volver a crear la tabla".
Cómo cambiar la opción "Impedir guardar los cambios que requieren volver a crear la tabla"
Para seleccionar o desactivar la opción Impedir guardar los cambios que requieren volver a crear la tabla , siga estos pasos:
- Abra SQL Server Management Studio.
- En el menú Herramientas , seleccione Opciones.
- En el panel de navegación de la ventana Opciones , seleccione Diseñadores.
- Active o desactive la casilla Impedir guardar los cambios que requieren volver a crear la tabla y, a continuación, seleccione Aceptar.
Nota
Si deshabilita esta opción, no se le advierte al guardar la tabla que los cambios realizados han cambiado la estructura de metadatos de la tabla. En este caso, es posible que se produzca una pérdida de datos al guardar la tabla.
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 el error, también puede provocar que se pierdan los cambios. Cuando la opción Impedir guardar cambios que requieren la nueva creación de tablas está habilitada, SSMS muestra el error de cada cambio que requiere que se vuelva a crear la tabla, ya que volver a crear una tabla puede provocar la pérdida de metadatos o datos en general. Change Tracking es un ejemplo de los metadatos que se pueden perder.
Por ejemplo, supongamos que habilita la característica Change Tracking en SQL Server para realizar un seguimiento de los cambios en la tabla. Al realizar una operación que hace que se vuelva a crear la tabla, 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 la opción .
Cómo comprobar si Change Tracking está habilitado para una tabla
Para determinar si la característica Seguimiento de cambios está habilitada para una tabla, siga estos pasos:
- En SQL Server Management Studio, busque la tabla en el Explorador de objetos.
- Haga clic con el botón derecho en la tabla y seleccione Propiedades.
- En el cuadro de diálogo Propiedades de la tabla, seleccione Control de cambios. Si el valor del elemento Change Tracking es True, Change Tracking está habilitado para la tabla. Si el valor es False, está deshabilitado.
Cuando la característica Change Tracking esté habilitada, use instrucciones T-SQL para cambiar la estructura de metadatos de la tabla. Para obtener más información sobre cómo habilitar y deshabilitar Change Tracking, vea Habilitar y deshabilitar Change Tracking.
Pasos para reproducir el problema
Para reproducir el error, siga estos pasos:
- En SQL Server Management Studio, cree una tabla que contenga una clave principal en la herramienta Diseñador de tablas.
- Haga clic con el botón derecho en la base de datos que contiene esta tabla y seleccione Propiedades.
- En el cuadro de diálogo Propiedades de la base de datos , seleccione Change Tracking.
- Establezca el valor del elemento Change Tracking en True y, a continuación, seleccione Aceptar.
- Haga clic con el botón derecho en la tabla y seleccione Propiedades.
- En el cuadro de diálogo Propiedades de la tabla , seleccione Change Tracking.
- Establezca el valor del elemento Change Tracking en True y, a continuación, seleccione Aceptar.
- En el menú Herramientas , seleccione Opciones.
- En el cuadro de diálogo Opciones , seleccione Diseñadores.
- Seleccione la casilla Impedir guardar los cambios que requieren volver a crear la tabla y, a continuación, seleccione Aceptar.
- En la herramienta Diseñador de tablas, cambie la configuración Permitir nulos de una columna existente.
- Intente guardar los cambios en la tabla.