Gestionar las tablas SQL Server

¿Cómo gestionar las tablas de SQL Server? Aquí hay una lista de sintaxis para las tablas de SQL Server. Las tablas SQL en general son el tipo de objeto más central que existe en una base de datos. Como un archivo es el bloque de construcción básico de cualquier sistema operativo. Mantenga esto como un marcador para crear una tabla fácilmente.

Gestionar las tablas SQL Server con scripts T-SQL

Aquí se explica cómo modificar una tabla o sus columnas con alter table y alter column.

Pero también, cómo vaciar una tabla con truncate table o eliminarla con drop table. Por último, comprueba la existencia de una tabla con la función IF EXISTS antes de eliminarla de la base de datos de SQL Server.

Ejemplo T-SQL para crear una tabla SQL Server

Este script de ejemplo utiliza el comando CREATE TABLE para crear una tabla de ventas. El script utiliza columnas para almacenar la hora a nivel de mes, el número de empleado y los importes de las ventas.

Esta tabla utiliza varios tipos de datos para mostrar una gama de formatos disponibles con SQL Server. Sin embargo, también es razonable calcular los importes sobre la marcha con el valor del IVA almacenado una vez en otra tabla, por ejemplo con el año.

-- Crear la tabla de ventas
CREATE TABLE [dbo].[SALES] 
(
[Year] INT, 
[MonthName] NVARCHAR(50), -- alphanumeric
[MonthCurrent] BIT, -- Boolean, 0 or 1 , false / true
[NumberMonth] TINYINT, -- very small integer, from 0 to 255
[EmployeeNumber] SMALLINT, -- small integer, minimum -2^15, maximum 2^15
[NumberOfClients] INTEGER, -- integer, minimum -2^31, maximum 2^31
[NumberOfSales] BIGINT, -- big integer, minimum: -2^63, maximum 2^63
[Amount_ET] NUMERIC(15,5), -- numeric, 15 digits, with 5 after the comma 
[Amount_IT] DECIMAL(15,5) -- decimal, 15 digits, with 5 after the comma
);

-- Notas:
-- Amount_ET significa "Amount Excluding Taxes" (importe sin impuestos)
-- Amount_IT significa Importe con impuestos incluidos
-- Inserte tres filas en la tabla de ventas
INSERT INTO [dbo].[SALES] VALUES ('Enero', 0,1,10,20,12,1000,1200);
INSERT INTO [dbo].[SALES] VALUES ('Febrero', 0,1,10,20,12,1000,1200);
INSERT INTO [dbo].[SALES] VALUES ('Marzo', 0,1,10,20,12,1000,1200);

Ejemplo de script para modificar una tabla (ALTER TABLE)

En primer lugar, para modificar una tabla y añadir restricciones para controlar la integridad de los datos introducidos, utilice los comandos ALTER TABLE y ADD CONSTRAINT.

Añada una restricción en la tabla Ventas para comprobar que la columna nombre del mes no es nula.

ALTER TABLE [dbo].[SALES] WITH CHECK
   ADD CONSTRAINT Month_check CHECK (MonthName IS NOT NULL);
GO

Ahora es posible insertar sólo valores distintos de cero en la tabla de ventas.

INSERT INTO [dbo].[SALES] VALUES (null, 0,1,10,20,12,1000,1200);

Si el valor del mes es nulo, aparece este error de SQL Server:

La sentencia INSERT entró en conflicto con la restricción CHECK «Month_check».
El conflicto se produjo en la base de datos «Expert-Only», tabla «dbo.SALES», columna ‘MonthName’.

Añadir una columna a una tabla SQL (ALTER COLUMN)

En segundo lugar, para evolucionar una tabla, adapte este ejemplo para cambiar la longitud de las columnas con un script ALTER COLUMN.

-- Change the length from 20 to 100 characters
ALTER TABLE [dbo].[SALES]
	ALTER COLUMN [MonthName] NVARCHAR(100);
GO

Eliminación de datos de una tabla de SQL Server (DELETE FROM)

En tercer lugar, para eliminar datos con un filtro, utilice este script y adáptelo a las necesidades del proyecto. Este script borra los datos de los tres primeros meses, enero, febrero y marzo.

DELETE FROM [dbo].[SALES]
	WHERE MonthName in ('Enero', 'Febrero', 'Marzo');

Vaciar todos los datos de una tabla de SQL Server (TRUNCATE TABLE)

Para vaciar todos los datos de una tabla de SQL Server sin ningún filtro, utilice el script TRUNCATE TABLE.

TRUNCATE TABLE [dbo].[SALES];

Eliminar una tabla de MS SQL (DROP TABLE)

Utilice este comando T-SQL para eliminar una tabla de SQL Server, es decir, el contenido y la estructura de la tabla.

DROP TABLE [dbo].[SALES];

Comprobar si una tabla existe y eliminarla (IF EXISTS y DROP TABLE)

Este último script es como un simple truncamiento pero comprueba además si la tabla existe. Esto es para evitar errores de SQL Server como «No se puede encontrar el objeto porque no existe».

IF EXISTS (
  SELECT 1 FROM sys.objects
    WHERE  object_id = object_id(N'[dbo].[SALES]')
    AND type in (N'U')  )
BEGIN 
  DROP TABLE [dbo].[SALES]
END;

Por último, este artículo, que recomiendo guardar como favorito y compartir, recuerda las sintaxis básicas sobre las tablas de SQL Server. Como crear, modificar, volcar y eliminar.

Además, no se enumeran aquí los detalles de cada operación, porque el objetivo es tener la sintaxis a mano lo más rápidamente posible.

Aquí hay otro artículo sobre T-SQL para calcular la diferencia entre fechas con SQL Server en horas, minutos y segundos.

Be the first to comment

Leave a Reply

Tu dirección de correo no será publicada.


*