sql >> Base de Datos >  >> RDS >> Sqlserver

Agregar columnas a una tabla existente en la base de datos de SQL Server

Introducción

Una tabla es una estructura lógica bidimensional y el medio fundamental para almacenar datos en los sistemas de gestión de bases de datos relacionales. Su formato de "fila y columna" es muy parecido a la organización de la hoja de cálculo.

Cada nuevo registro introducido en una tabla es una fila (también denominada registro o tupla), mientras que las filas se agrupan en un conjunto finito de columnas (también denominadas campos o atributos). Cada columna tiene un nombre y un tipo de datos, y sirve como referencia para mostrar conjuntos de resultados al consultar datos de sistemas de bases de datos relacionales.

En este artículo, exploramos las opciones actuales que nos permiten agregar nuevas columnas a una tabla existente en la base de datos de SQL Server. El caso de uso puede surgir en muchas ocasiones. En particular, sucede cuando hay actualizaciones para una aplicación y exigen agregar nuevas columnas.

Crear una tabla

Para comenzar nuestro breve conjunto de experimentos, creemos una pequeña tabla con cuatro columnas que contengan información básica sobre alguna empresa:

-- Listing 1: Create New Table ntab
use AU
go
create table ntab (
ID INT identity (1,1)
, CompanyName varchar(100)
, CompanyAddress varchar(200)
, DateofIncorporation datetime
);

Agregar una sola columna

Para agregar una sola columna a la ntab table, ejecutamos el código provisto en el Listado 2. El resultado es una tabla de cinco columnas, como se muestra en la Figura 1. Generamos estos metadatos sobre nuestra tabla con las sp_columns procedimiento almacenado.

-- Listing 2: Add ManagingDirector Column to Empty Table

alter table ntab add ManagingDirector varchar(50);

exec sp_columns ntab;

Con el código del Listado 3, completamos una nueva tabla con 1000 filas.

-- Listing 3: Add Column to Empty Table
insert into ntab values ('Simplex Technologies','Plot 121 Nova Ridge II, Appolonia City','20201023','Kenneth Igiri');
GO 1000

Luego, agregamos otra columna TaxIdentityNumber – podemos hacerlo con éxito sin una sobrecarga de rendimiento aparente:

-- Listing 4: Add Column to Populated Table

alter table ntab add TaxIdentityNumber varchar(20);

exec sp_columns ntab;

Eliminar o agregar varias columnas usando el comando ALTER TABLE

En una sola declaración, también podemos eliminar o agregar columnas. Importante:cuando eliminamos columnas de una tabla con datos, perdemos los datos muy rápidamente. Ciertamente no es un comando con el que jugar en producción.

El comando ALTER TABLE es un comando de lenguaje de definición de datos (DDL) similar a TRUNCATE. La operación no se captura en el registro de transacciones y es imposible revertirla. Si tiene motivos para hacerlo en producción, debe tener una copia de seguridad para poder volver al estado anterior.

-- Listing 5: Drop Column from Table

alter table ntab drop column ManagingDirector, TaxIdentityNumber;

alter table ntab add ManagingDirector varchar(50), TaxIdentityNumber varchar(20);

select * from ntab;

Importante:cuando intenta eliminar una columna que tiene un índice, devuelve un error (vea la imagen). Primero, debe hacer una copia de seguridad y soltar el Índice.

Uso de la GUI:diseñador de tablas

Antes de continuar, tenga en cuenta que debe asegurarse de utilizar la última versión de SQL Server Management Studio. Si hay una discrepancia entre la versión de la base de datos y su versión de SSMS, obtendrá el siguiente error:

Para cambiar la estructura de la tabla, abra el Diseñador de tablas en SSMS:haga clic con el botón derecho en la tabla y haga clic en Diseño.

Verá la ntab detalles de la tabla:

En el Diseñador de tablas, agregamos los nombres de las columnas que queremos agregar y especificamos los Tipos de datos y la nulabilidad según lo deseemos.

Una vez hecho, guardamos la tabla usando cualquiera de las opciones disponibles. Por ejemplo, consulte la opción disponible en el menú de la barra de SSMS:

Hay una configuración de SQL Server Management Studio que puede impedir que se guarde la tabla con columnas recién agregadas. Es posible que deba deshabilitar esta configuración:

Herramientas> Opciones> Diseñadores> Diseñadores de tablas y bases de datos

En segundo plano, SQL Server ejecuta el mismo SQL que mostramos anteriormente (Listado 5). Extrajimos esto usando SQL Profiler. Puede obtener los mismos datos con eventos extendidos:

Una vez que hayamos terminado, podemos ver los mismos resultados que antes:

dbForge Studio para SQL Server

dbForge Studio para SQL Server de la empresa Devart ofrece una interfaz funcional robusta para interactuar con SQL Server. Como la solución es similar a SSMS, es fácil de operar. Se conecta a la perfección a la instancia de SQL Server y permite al usuario interactuar sin problemas con los objetos de SQL Server. Puedes descargar la edición express aquí .

Para modificar una tabla en dbForge Studio, haga clic derecho en esa tabla para ver las propiedades detalladas.

Agrega una nueva columna de la misma manera que lo hace en el Diseñador de tablas de SQL Server. Sin embargo, tenga en cuenta el nivel de detalle que se muestra para la tabla, incluido el DDL de la tabla. Es mucho más robusto que el disponible en SSMS.

dbForge Studio sigue las mismas reglas de agregar columnas a las tablas que SQL Server Management Studio. El DDL de la tabla se actualiza tan pronto como agrega una columna. Sin embargo, debe hacer clic en GUARDAR para conservar los cambios:

Conclusión

Este artículo demostró los métodos que podemos usar para agregar columnas a una tabla existente en SQL Server, ya sea que esa tabla tenga datos o no.

También ilustramos el impacto de eliminar columnas cuando la tabla tiene datos. Señalamos que el comando ALTER TABLE es un comando DDL. No hay registros ni un impacto significativo en el rendimiento. Utilice el Diseñador de tablas para insertar columnas entre columnas existentes en lugar de al final de la lista de columnas.

También hemos revisado la funcionalidad de Devart dbForge Studio 2019. Tiene una interfaz mucho más robusta y conveniente para esta tarea y otras similares. También puede ofrecer muchas otras capacidades para hacer que la administración de la base de datos de SQL Server sea mucho más fácil.

Referencias

  1. Impacto en el rendimiento de los comandos ALTER TABLE
  2. Alterar tabla en T-SQL
  3. Función de diseñador de tablas en dbForge Studio para SQL Server