none
PROBLEMAS ALGUARDAR CAMBIOS EN SQL SERVER 2012 RRS feed

  • Pregunta

  • HOLA A TODOS ESPERO ME PUEDAN RESPONDER, LO QUE PASA QUE CUANDO QUIERO MODIFICAR CAMBIOS EN UN CAMPO DE UNA TABLA EN VISTA DISEÑO AL MOMENTO DE CERRAR LA VISTA DISEÑO NO ME GUARDA LOS CAMBIOS ME SALE UN MENSAJE DE ERROR DONDE ME DICE QUE TENGO QUE VOLVER A CREAR LA TABLA, ESTO ME PASA PORQUE QUIERO CAMBIAR LA LONGITUD DEL CAMPO "NOMBRE" EN EL TIPO VARCHAR DE 20 A 30 Y NO ME PERMITE HACER EL CAMBIO.

    GRACIAS.

    

    domingo, 2 de agosto de 2015 14:06

Respuestas

  • Hola luiseñor,

    Aquí hay algunos puntos por considerar, espero lo tomes muy en cuenta.

    El mensaje de advertencia se produce cuando se intenta modificar la estructura de una tabla mediante el diseñador: la opcionalidad, el orden, el tipo de dato de una columna o crear una nueva columna, son cambios que desencadenan la advertencia y detienen el proceso.

    Ahora, ¿por qué SQL Server no me permite hacer esos cambios?¿Por qué tiene activa una verificación para evitar que se guarden cambios que requieran la creación de la tabla?

    Porque precisamente cuando guardas los cambios efectuados se vuelve a crear la tabla en función de los cambios realizados, aquí SQL Server intenta proteger de que puedas tener pérdida de información a causa de los cambios.

    ¿Crea de nuevo la tabla?

    Pues si. Pongámonos en el caso de que tu tabla se llama Clientes. Si desactivas la casilla de verificación según te sugieren, lo que ocurrirá es que luego de guardar los cambios se creará una tabla llamada más o menos [Tmp_Clientes], en ella se aplicarán todos los cambios realizados, luego se borrará la tabla original [Clientes] y finalmente se renombrara la tabla [Tmp_Clientes] por [Clientes], verás que ante tanto cambio SQL Server te previene de atentar contra los datos almacenados. Microsoft recomienda no desactivar la opción Impedir guardar los cambios que requierán volver a crear tablas y si Microsoft lo recomienda ¿por qué desobedecer?

    Pues bien, ¿entonces cómo resolverás tu problema?

    Bastante simple, recoje las puñeras de tu camisa hasta una altura en que te permita trabajar con libertad y empieza a escribir código Transact SQL, bastará con realizar una instrucción DDL (Data Definition Language), algo simple como lo siguiente:

    ALTER TABLE MyTable ALTER COLUMN MyColumn nvarchar(300) NULL/NOTNULL;


    Todo acabo, puedes volver las puñeras de tu camisa a su sitio :)

    Espero que hayas entendido el porque no debes de desobedecer las recomendaciones que te da SQL Server.


    Si la solución propuesta atendió su consulta no olvide marcarla como respuesta.


    Willams Morales
    Arequipa - PERÚ




    domingo, 2 de agosto de 2015 15:12

Todas las respuestas

  • Buenas. Yo tuve ese problema y pude encontrar la solución.

    Cualquier cambio en la vista diseño implica una consulta SQL por detrás, que la genera el Management Studio automáticamente. 

    Las consultas que requieren crear la tabla de nuevo están deshabilitadas por defecto. Para activarlo, tienes que ir a:

    Herramintas > Opciones > Diseñadores. Aquí desmarcas la casilla "Impedir guardar cambios que requieran volver a crear tablas".

    Saludos y si te sirve, por favor, vota como respuesta

    domingo, 2 de agosto de 2015 14:25
  • Hola luiseñor,

    Aquí hay algunos puntos por considerar, espero lo tomes muy en cuenta.

    El mensaje de advertencia se produce cuando se intenta modificar la estructura de una tabla mediante el diseñador: la opcionalidad, el orden, el tipo de dato de una columna o crear una nueva columna, son cambios que desencadenan la advertencia y detienen el proceso.

    Ahora, ¿por qué SQL Server no me permite hacer esos cambios?¿Por qué tiene activa una verificación para evitar que se guarden cambios que requieran la creación de la tabla?

    Porque precisamente cuando guardas los cambios efectuados se vuelve a crear la tabla en función de los cambios realizados, aquí SQL Server intenta proteger de que puedas tener pérdida de información a causa de los cambios.

    ¿Crea de nuevo la tabla?

    Pues si. Pongámonos en el caso de que tu tabla se llama Clientes. Si desactivas la casilla de verificación según te sugieren, lo que ocurrirá es que luego de guardar los cambios se creará una tabla llamada más o menos [Tmp_Clientes], en ella se aplicarán todos los cambios realizados, luego se borrará la tabla original [Clientes] y finalmente se renombrara la tabla [Tmp_Clientes] por [Clientes], verás que ante tanto cambio SQL Server te previene de atentar contra los datos almacenados. Microsoft recomienda no desactivar la opción Impedir guardar los cambios que requierán volver a crear tablas y si Microsoft lo recomienda ¿por qué desobedecer?

    Pues bien, ¿entonces cómo resolverás tu problema?

    Bastante simple, recoje las puñeras de tu camisa hasta una altura en que te permita trabajar con libertad y empieza a escribir código Transact SQL, bastará con realizar una instrucción DDL (Data Definition Language), algo simple como lo siguiente:

    ALTER TABLE MyTable ALTER COLUMN MyColumn nvarchar(300) NULL/NOTNULL;


    Todo acabo, puedes volver las puñeras de tu camisa a su sitio :)

    Espero que hayas entendido el porque no debes de desobedecer las recomendaciones que te da SQL Server.


    Si la solución propuesta atendió su consulta no olvide marcarla como respuesta.


    Willams Morales
    Arequipa - PERÚ




    domingo, 2 de agosto de 2015 15:12