Guardar los cambios después de editar la tabla en SQL Server Management Studio


Si quiero guardar cualquier cambio en una tabla, guardado previamente en SQL Server Management Studio (no hay datos en la tabla presente) me sale un mensaje de error:

No se permite guardar cambios. Los cambios que ha realizado requieren el las siguientes tablas se eliminarán y se recrearán. Usted ha hecho cambios en una tabla que no se puede volver a crear o habilitar la opción Evite guardar los cambios que requieren que se vuelva a crear la tabla.

¿ Qué puede impedir que la tabla sea fácil de editar? O bien, ¿es la forma habitual de que SQL Server Management Studio requiera volver a crear la tabla para editarla? ¿Qué es-esta "opción Evitar guardar cambios" ?

Author: Liam, 2009-12-28

7 answers

Vaya a Herramientas -> Opciones -> Diseñadores-> Desmarque "Evitar guardar los cambios que requieren la recreación de la tabla". Voila.

Eso sucede porque a veces es necesario soltar y recrear una tabla para cambiar algo. Esto puede llevar un tiempo, ya que todos los datos deben copiarse en una tabla temporal y luego volver a insertarse en la nueva tabla. Dado que SQL Server por defecto no confía en ti, necesitas decir " OK, sé lo que estoy haciendo, ahora déjame hacer mi trabajo."

 494
Author: Pedro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-12-28 11:57:46

Herramientas > Opciones

introduzca la descripción de la imagen aquí

Desmarque la opción anterior

 102
Author: Prasanna,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-25 12:07:33

Para solucionar este problema, utilice instrucciones SQL para realizar los cambios en la estructura de metadatos de una tabla.

Este problema ocurre cuando La opción"Evitar guardar los cambios que requieren la recreación de la tabla" está habilitada.

Fuente: Mensaje de error al intentar guardar una tabla en SQL Server 2008:"Guardar cambios no está permitido"

 71
Author: Daniel Vassallo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-12-28 11:47:43

En lugar de desmarcar la casilla (una solución deficiente), debe DEJAR de editar datos de esa manera. Si los datos deben cambiarse, hágalo con un script, para que pueda portarlos fácilmente a producción y para que esté bajo control de código fuente. Esto también hace que sea más fácil actualizar los cambios de prueba después de que la producción se haya enviado a dev para permitir que los desarrolladores trabajen contra datos más frescos.

 14
Author: HLGEM,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-12-28 21:34:52

VAYA a SSMS y pruebe esto

Menú > > Herramientas > > Opciones > > Diseñadores > > Desmarque "Evitar guardar los cambios que requieren la recreación de la tabla".

Aquí hay una muy buena explicación sobre esto: http://blog.sqlauthority.com/2009/05/18/sql-server-fix-management-studio-error-saving-changes-in-not-permitted-the-changes-you-have-made-require-the-following-tables-to-be-dropped-and-re-created-you-have-either-made-changes-to-a-tab/

 14
Author: Rolwin C,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-29 07:31:26

Muchos cambios que puede realizar de forma muy sencilla y visual en el editor de tablas en SQL Server Management Studio requieren que los SSM dejen la tabla en segundo plano y la vuelvan a crear desde cero. Incluso cosas simples como reordenar las columnas no se pueden expresar en la instrucción estándar SQL DDL - todo lo que los SSMS pueden hacer es soltar y recrear la tabla.

Esta operación puede a) consumir mucho tiempo en una tabla grande, o b) incluso puede fallar por varias razones (como restricciones FK y esas cosas). Por lo tanto, SSMS en SQL Server 2008 introdujo esa nueva opción que las otras respuestas ya han identificado.

Al principio puede parecer contrario a la intuición evitar tales cambios, y sin duda es una molestia en un servidor de desarrollo. Pero en un servidor de producción, esta opción y su valor predeterminado de prevenir tales cambios se convierte en un potencial salvavidas.

 13
Author: marc_s,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-12-28 12:38:28

Este es un riesgo de desactivar esta opción. Puede perder cambios si tiene activado el seguimiento de cambios (sus tablas).

Chris

Http://chrisbarba.wordpress.com/2009/04/15/sql-server-2008-cant-save-changes-to-tables/

 6
Author: Chris,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-12-30 15:11:14