Skip to content

Modificar el la estructura de una tabla desde el SQL Server Management Studio

29/01/2013
SQLServerLogo

Es muy común que al intentar modificar la estructura de una tabla (esquema) de SQL Server desde el Management Studio (SSMS) nos aparezca un error indicando que esta operación no es posible.

ModifyTableSchema_1

La causa de este error es que la tabla que intentamos modificar contiene datos previos, por lo que el SSMS bloquea el cambio, también el error aparece si intento insertar una nueva columna entre otras dos ya existente o si quiero modificar el tipo de dato de una columna. Si la tabla estuviese vacía o la columna se incorpora al final, podemos modificarla sin problemas. Pero hay una alternativa al comportamiento predeterminado, que se puede obtener modificando la configuración del SSMS, en el menú de Herramientas/Opciones (Tools/Options), de acuerdo al siguiente gráfico:

ModifyTableSchema_2

Desmarcando la opción “Prevent saving changes that require table re-creation”.

Tengamos en cuenta de todas formas que este cambio permite la modificación del esquema de las tablas, pero lo hace mediante un procedimiento que normalmente no es el apropiado. Lo que se hace detras de escena es primero crear una nueva tabla con la estructura modificada, luego insertar todos los registros de la tabla original en esta  nueva tabla, luego eliminar la tabla original y finalmente cambiar el nombre de la tabla modificada por el nombre de la tabla original, todas estas operaciones dentro de una transacción. Como se puede advertir, este procedimiento es sumamente ineficiente para tablas con muchos registros.

Para por ejemplo modificar el tipo de dato de una columna podemos utilizar directamente un comando TSQL de este tipo:

ALTER TABLE HumanResources.Employees ALTER COLUMN JobTitle varchar(100)

Este comando se ejecutará en forma instantánea sin importar la cantidad de registros que pueda tener la tabla.

Dejar un comentario

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: