SQLShack (Español)

En este artículo, explorará el proceso de SQL Delete columna de una tabla existente. También entenderemos el impacto de eliminar una columna con restricciones definidas y objetos en ella.

Introducción

En una base de datos relacional, usamos la técnica de diseño de esquema Normalizaciones y dividimos las tablas grandes en tablas más pequeñas. Ayuda a reducir la redundancia y la dependencia de los datos. Tenemos múltiples formas de normalización especificadas en la siguiente imagen.

No cubrimos las técnicas de normalización en este artículo. Puede consultar el artículo: ¿Qué es la normalización de bases de datos en SQL Server?

Suponga que tiene una tabla existente con varias columnas. Hay columnas específicas en esta tabla que no son relevantes ahora. No necesita estas columnas. Por ejemplo, considere una tabla de productos, y en esta tabla, tiene una columna. Implementamos un mecanismo independiente para capturar comentarios sobre el producto y esta columna no es relevante ahora.

Comprendamos por qué es esencial eliminar las columnas no deseadas de la tabla SQL. A continuación se muestra la estructura de mi tabla y necesitamos eliminar la columna que tiene el tipo de datos varchar (2000).

Esta tabla contiene 4 millones filas y el usuario ejecutó el comando para seleccionar todos los registros de esta tabla.

1

SELECCIONAR * DE Productos;

Capture el plan de ejecución real (presione CTRL + M) de esta consulta junto con las estadísticas del cliente (presione Mayús + Alt + S).

En otra ventana de consulta, ejecute la consulta sin la columna y capture las estadísticas similares.

1
2
3
4

SELECCIONAR
,
,
DE ..

Comparemos el plan de ejecución real de ambas consultas en SSMS. Puede notar que la consulta sin la columna proporciona un rendimiento mejorado. Observa valores bajos de memoria compilada, tiempo de CPU, recuentos de espera reducidos.

El optimizador de consultas y el motor de base de datos SQL requieren hacer un esfuerzo adicional para esta columna mientras no es útil recuperar datos de ella.

Del mismo modo, compare las estadísticas del cliente de ambas consultas. Puede notar una reducción significativa en los paquetes TDS recibidos del servidor. Bytes enviados al cliente, Bytes recibidos del servidor, tiempo de procesamiento del cliente y tiempo total de procesamiento de la consulta que no contiene la columna. También puede ayudarlo a ahorrar el ancho de banda de la red.

En este caso, pretendo que realice una limpieza de la base de datos y elimine las columnas no deseadas para mejorar también el rendimiento de la consulta.

Exploremos cómo eliminar una columna de una tabla SQL existente.

SQL DELETE column usando el explorador de objetos SSMS

Podemos eliminar una columna usando el usuario gráfico Método de interfaz (GUI) en SQL Server. Conéctese a una instancia en SSMS, expanda las bases de datos. En la base de datos en particular, ubique la tabla en particular y expanda las columnas.

Muestra todas las columnas de la tabla en particular. Haga clic derecho en la columna que queremos eliminar y haga clic en Eliminar como se muestra en la siguiente imagen.

Se abre un ventana y enumera el nombre de la columna para eliminar. Haga clic en Aceptar y eliminará la columna de la tabla.

SQL DELETE columnas usando el diseñador de tablas SSMS

Usamos el diseñador de tablas en SSMS para definir las columnas requeridas, los tipos de datos y las propiedades de las columnas, como la clave principal y las columnas de identidad. También podemos usarlo para eliminar una columna de una tabla existente.

Haga clic derecho en la tabla y vaya a Diseño.

Muestra todas las columnas de una tabla en particular.

Haga clic con el botón derecho en el lado izquierdo de una columna y obtendrá la opción Eliminar columna. Haga clic en él para eliminar una columna.

Puede guardarlo presionando CTRL + S o cerrar el diseñador de tablas y haga clic en Sí en la siguiente ventana.

SQL ELIMINAR columnas usando el diseñador de tablas T-SQL

También podemos usar el comando Alterar tabla para eliminar una columna. La sintaxis es sencilla de utilizar. El siguiente comando elimina la columna de la tabla.

1
2
3
4

UTILIZAR
GO
ALTER TABLE. COLUMNA DE GOTA
GO

  • Primero, especifique el nombre de la tabla que contiene la columna a eliminar
  • Segundo, especifique el nombre de la columna que queremos eliminar

También podemos eliminar múltiples columnas en un solo comando Alterar tabla, pero todas las columnas deben pertenecer a una sola tabla. Este comando elimina y columnas en un solo comando.

1
2
3
4

USAR
GO
ALTER MESA . COLUMNA DE SOLDADURA,
GO

La columna SQL DELETE contiene restricciones CHECK

Usamos restricciones CHECK para limitar el rango de valores en una columna. Suponga que tiene una columna que tiene restricciones CHECK.

Queremos eliminar la columna, pero esta columna tiene una restricción CHECK. Intentemos eliminarlo.

1
2

ALTERAR TABLA. COLUMNA BAJADA ProductPrice
GO

Aparece un mensaje de error que indica que los objetos CK_Price_Check dependen de la columna.

No podemos eliminar esta columna hasta que tenga un dependiente objeto en él. Para eliminar esta columna, primero, elimine la dependencia y luego elimine la columna.

Intentemos eliminar la columna que tiene la restricción CHECK usando el diseñador de tablas. Diseñador de mesa abierta para la mesa.

Haga clic derecho en la columna y verifique que existan restricciones CHECK en esta tabla.

It muestra las restricciones CHECK según la siguiente imagen.

Ahora, haga clic derecho en la columna y elimine la columna. No muestra ningún mensaje de error.

Cierre la ventana del diseñador y le pedirá que haga clic en Sí para guardar los cambios.

Le brinda un mensaje de advertencia de validación y un mensaje sobre la restricción de verificación.

Haga clic en Sí y no podrá modificar la tabla. No puede eliminar la columna porque la restricción CHECK depende de ella.

No podemos eliminar la columna usando el diseñador de tablas si la columna tiene dependencias de otros objetos.

Columna SQL DELETE con una vista SQL definida

Creemos una vista SQL para seleccionar todos los registros de la tabla.

1
2
3

Crear vista vw_ProductSales
como
SELECT * from ProductSales

Esta vista depende de todas las columnas de la tabla. Suelta la columna con el comando Alterar tabla.

1
2

ALTERAR LA TABLA. COLUMNA BAJADA ProductPrice
GO

No recibimos ningún mensaje de error en la ejecución de la consulta. Intentemos acceder a los registros desde la vista.

1
2

SELECCIONAR *
FROM vw_ProductSales;

Recibimos un mensaje de error porque la tabla no contiene la columna. Esta columna estuvo disponible una vez que creamos la vista SQL.

  • Nota: debemos verificar las dependencias de los objetos antes de soltar una columna. Eliminará los problemas que enfrentaremos más adelante.

Conclusión

En este artículo, aprendimos sobre SQL Eliminar una columna de una tabla existente usando diferentes métodos. Debemos conocer todos estos métodos. Debe tener cuidado en el entorno de producción antes de eliminar columnas. Debe eliminar todas las dependencias y planificarlo correctamente.

  • Autor
  • Publicaciones recientes
Como certificado por MCSA y Microsoft Certified Trainer en Gurgaon, India, con 13 años de experiencia, Rajendra trabaja para una variedad de grandes empresas que se centran en la optimización del rendimiento, la supervisión, la alta disponibilidad y las estrategias e implementación de recuperación ante desastres. Es autor de cientos de artículos autorizados sobre SQL Server, Azure, MySQL, Linux, Power BI, Performance tuning, AWS / Amazon RDS, Git y tecnologías relacionadas que han sido vistos por más de 10 millones de lectores hasta la fecha.
Es el creador de una de las mayores colecciones de artículos en línea gratuitos sobre un solo tema, con su serie de 50 partes sobre los grupos de disponibilidad Always On de SQL Server. Basado en su contribución a la comunidad de SQL Server, ha sido reconocido con varios premios, incluido el prestigioso «Mejor autor del año» de forma continua en 2020 y 2021 en SQLShack.
Raj siempre está interesado en nuevos desafíos, así que si necesita consultoría ayuda sobre cualquier tema tratado en sus escritos, puede ser contactado en [email protected]
Ver todas las publicaciones de Rajendra Gupta

Últimas publicaciones de Rajendra Gupta (ver todas)
  • Realización de actualizaciones de versiones menores y mayores para AWS RDS SQL Server: 29 de enero de 2021
  • Implementación de instancias de AWS RDS PostgreSQL: 27 de enero de 2021
  • Migración de sus bases de datos SQL locales a AWS RDS SQL Server mediante AWS DMS: 25 de enero , 2021

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *