Tablas derivaras en SQL Server

En entradas anteriores vimos las Subconsultas que son más semejante a una tabla derivada. La diferencia es que en una tabla derivada es definida entre paréntesis en clausula FROM de la consulta externa y se le debe de especificar un nombre. Es necesario indicar que estas tablas son temporales y son creadas en tiempo de consulta.

Las tablas derivadas son usadas cuando necesitamos hacer consultas sobre otra consulta y que son un poco complejas.

Para ilustrar un poco más veamos un ejemplo, utilizando la base de datos Northwind, supongamos que deseamos saber la cantidad de órdenes que despachan según la posición de los empleados y que cantidad y porcentaje vende cada empleado de manera individual.

Sigue leyendo

Anuncios

Subconsultas en SQL Server

En SQL Server podemos realizar subconsultas o subquerys, que no es más que una consulta dentro de otra, ya sea un SELECT, UPDATE, DELETE u otra subconsulta. Las subconsultas pueden ser “self-contained”, o sea independientes de una consulta externa o pueden ser “correlated”, dígase, que tienen referencia a una columna de una tabla de la consulta externa.

Sigue leyendo

ORDER BY en SQL Server, la parte confusa.

OrderBySqlServer

Probablemente una de los aspectos más confusos en T-SQL es entender cuando el resultado de una consulta se devuelve en un orden particular o cuando no. Para este artículo utilizaremos la base de datos de Microsoft, Northwind.

Consideremos en la siguiente consulta:


SELECT EmployeeID, FirstName, LastName, City, MONTH(BirthDate) AS BirthMonth
FROM Employees
WHERE Country = 'USA' AND Region = 'WA'

¿Existe una garantía de que las filas van a ser devueltas en un orden particular, y si es así, cual es ese orden?

Sigue leyendo

Restricciones en SQL Server

Las restricciones son limitaciones o reglas aplicadas a un campo o columna para asegurar que no se acepten datos que no se consideren válidos. Por ejemplo, si hay que insertar la fecha de nacimiento de una persona, la fecha debe de ser menor que la fecha actual; ya no se permitiría añadir una persona con fecha de nacimiento futurista. A partir SQL Server 2008 están disponibles una serie de restricciones, incluidas las siguientes:

Sigue leyendo

SQL Server: Triggers

Un Trigger o desencadenador es un tipo de procedimiento almacenado que se ejecuta automáticamente cuando se produce un evento de Lenguaje de Manipulación de Datos (DML), o sea cuando se ejecuta un INSERT, UPDATE o DELETE en una tabla o un evento de Lenguaje de Definición de Datos (DDL) en este caso un DROP TABLE o ALTER TABLE en una base de datos.

La sintaxis básica es la siguiente:

CREATE TRIGGER nombre_trigger
ON { tabla | DATABASE } --Tabla a la que se establecerá el Trigger o la palabra reservada DATABASE para Triggers DDL
{ FOR }{ INSERT, UPDATE, DELETE, DROP_TABLE, ALTER_TABLE} --Evento que se desea lanzar (se puede usar más de uno)
DECLARE @nombre_variable TIPO --Nombre y tipo de datos de la variable si se desea crear
AS Bloque de instrucciones

Sigue leyendo