Tablas – Datos XML

Uso de datos XML en tablas en SQL Server

Es posible incluir en un campo de una tabla datos en formato XML (eXtensible Markup Language), el tipo de datos XML permite almacenar datos que dependan del registro en la misma tabla y posiblemente evitar diseñar un maestro – detalle. Continue reading

Uso de Cube y Rollup

Agrupamientos incluyendo Subtotales

Uso de Cube o Rollup

Los operadores Cube y Rollup son extensiones de la cláusula Group By (Ver Agrupamientos), permiten calcular subtotales de acuerdo a las agrupaciones especificadas en la consulta.

Importante:
Para que las opciones funcionen, el nivel de compatibilidad debe ser al menos 100,  correspondiente a SQL Server 2008 Continue reading

Subconsultas

Subconsultas

Una subconsulta es una consulta anidada en un SELECT, INSERT,  UPDATE o DELETE e inclusive en otra subconsulta.  Las subconsultas se pueden utilizar en cualquier parte en la que se permita una expresión. Las subconsultas deben seguir ciertas reglas que se mencionan al final del post. Es necesario conocer la estructura de la base de datos para poder relacionar las tablas correctamente y lograr los resultados esperados. Los resultados obtenidos con subconsultas se pueden también obtener con el uso de Joins. Continue reading

Subconsultas – Casos prácticos

Subconsultas – ejercicios

Las subconsultas permiten extraer información que incluyen varias tablas, estas generalmente reportan un solo dato a un conjunto de resultados con una columna. Para la parte teórica completa y las condiciones y restricciones ver Subconsultas.

En este artículo veremos como desarrollar ejemplos analizando los datos y armando por pasos la subconsulta. Continue reading

Subconsultas – Casos prácticos 2

Subconsultas – Casos prácticos 2

Las subconsultas se explicaron en un post previo (Ver Subconsultas), este post presenta ejercicios algo más complejos, además de realizar el análisis los costos de ejecución usando el Plan de ejecución. Continue reading

Tipos de datos definidos por el usuario

Tipos de datos definidos por el usuario

SQL Server permite crear tipos de datos que el usuario puede definir en base a los tipos de datos de SQL Server.

La creación de tipos de datos definidos por el usuario va a permitir el uso de los datos nativos de SQL Server de manera mas fácil, por ejemplo, para datos de tipo caracter que tengan una longitud variable entre 2 a 80 caracteres, se pueden definir un tipo de datos con una longitud de 100 para que alcance cualquier texto que pase los 80 caracteres y ponerle un nombre de fácil recuerdo como Texto100.  Continue reading

Subconsultas – Casos prácticos 3

Subconsultas – Casos prácticos 3

Las subconsultas se explicaron en un post previo (Ver Subconsultas), este post presenta ejercicios algo más complejos, además de realizar el análisis los costos de ejecución usando el Plan de ejecución. Continue reading

Tipos de datos definidos por el usuario – ejercicio

Tipos de datos definidos por el usuario

Los tipos de datos definidos por el usuario permiten facilitar la estandarización de los tipos de las columnas en un diseño de base de datos.
En este ejemplo se crea una base de datos para luego crear un diseño con una Factura, los productos y el Detalle de la factura. Continue reading

Subconsultas como tabla derivada

Subconsultas como tabla derivada

  • Las subconsultas como tabla derivada son instrucciones select que sirven como conjunto de resultados desde donde se realiza una instrucción select externa.
  • Para entender mejor debemos recordar que en una subconsulta podemos reconocer como mínimo dos instrucciones Select, una consulta externa que dentro de ella tiene una o mas instrucciones select que son las consultas internas. (Ver Subconsultas)

Continue reading

Tablas – Claves Foráneas y Campos Calculados

Creación de Tablas relacionadas usando Foreign Keys

Las tablas en la base de datos están relacionadas entre sí a través de la clave primaria de una tabla y esta se convierte en clave foránea en la tabla con la que se relaciona.

Los campos calculados en las tablas permiten almacenar los datos que se calculan en base a los campos de la misma tabla, es recomendable en casos donde las consultas pueden resultar muy pesadas.

Al insertar los registros, los campos calculados no se debe incluir en la instrucción, estos se calculan de manera automática. Continue reading

Tablas Partición Horizontal

Tablas Particionadas

Las tablas que tienen muchos registros es conveniente que se particionen, esto será beneficioso si la base de datos tiene varios archivos y de preferencia inclusive varios grupos en varios discos.

Requisitos

  1. La base de datos debería tener varios archivos en varios grupos para que sea beneficioso.
  2. Definir el tipo de datos y los límites para los rangos por los cuales se particionará la tabla.
  3. Crear la función de partición para definir los límites.
  4. Crear el esquema de partición para asignar los rangos a cada grupo dentro de la base de datos. Continue reading

Cláusula UNION en Select

Cláusula UNION en consultas

  • El operador UNION permite combinar resultados de varias consultas con SELECT en un único resultado.
  • Todas las instrucciones Select deben tener la misma cantidad de campos y todos los campos deben ser datos compatibles.
  • Los nombres de los campos del conjunto de resultados son iguales a los especificados en la primera consulta.
  • Los resultados que se repiten son eliminados al hacer una combinación de select usando Union.
  • Tenga en cuenta la intercalación del servidor y de la base de datos para que SQL Server decida cuando dos datos de tipo caracter son iguales o diferentes.
  • Se puede especificar la palabra All para que los resultados repetidos no se eliminen del conjunto de resultados final.
  • Se debe especificar solamente una cláusula Order by y se escribe al final de la instrucción.
  • No es posible hacer UNION con bases de datos que tienen diferente intercalación.
  • No se puede incluir campos de tipo nText.

Continue reading

Tablas – campo XML ejemplo

Campos XML en Tablas

Los tipos de campo XML permiten guardar información estructurada que dependa del mismo registro. El uso de los tipos de datos XML es muy efectivo para elementos dependientes que no tengan muchos datos. Continue reading

Tablas – Modificación

Modificación de Tablas

Las tablas en la base de datos se deben modificar en algunas ocasiones, es posible agregar o quitar campos, restricciones y cambiar de nombre los campos. Continue reading

Common Table Expressions CTE

Common Table Expressions – CTE

Una expresión de tabla común (CTE) es un conjunto de resultados temporal definido en la ejecución de una instrucción SELECT, INSERT, UPDATE,  DELETE o CREATE VIEW. Es como asignar un nombre a una consulta pero sin almacenarla en la base de datos como el caso de las vistas. (Ver Vistas)

Una CTE es similar a una tabla derivada en que no se almacena como un objeto y dura sólo el tiempo que dura la consulta. A diferencia de una tabla derivada, una CTE puede hacer referencia a sí misma y se puede hacer referencia a ella varias veces en la misma consulta. Continue reading

Tablas – ejercicio modificar – agregar Check

Modificación de Tablas

Las tablas permanentemente se tienen que modificar si es que se incluyen en los sistemas nuevas funcionalidades, es posible que se agreguen tablas nuevas y algunas se tengan que modificar. Las reglas de negocio para las tablas existentes pueden cambiar, lo  que hace en ocasiones necesario de agregar restricciones a las tablas. En este ejercicio se muestra como agregar campos, restricciones y analizar los registros que no cumplan con una restricción de tipo Check. Continue reading

Tablas Temporales

Tablas Temporales

Las tablas temporales en SQL Server son utilizadas para almacenar cálculos intermedios en transacciones que requieren de grandes cantidades de datos para ser manejados mas eficientemente que con variables. Las tablas temporales se almacenan en la base de datos Tempdb.

Las tablas temporales son de dos tipos:

  • Temporales locales: Las tablas temporales locales incluyen en el nombre el símbolo # como primer carácter. Se crean por cada usuario conectado y la tabla se elimina automáticamente cuando el usuario termina la sesión.
  • Temporales globales: Las tablas temporales globales inician con dos símbolos ## en el nombre y son visibles por todos los usuarios conectados al servidor.  Al desconectarse todos los usuarios, la tabla temporal global se elimina automáticamente.

Continue reading

Variables Tipo Tabla

Como usar variables tipo tabla

  • Las Variables Tipo Tabla son tipos de datos que generalmente son utilizados en un lote T-SQL,  procedimiento almacenado o función definida por el usuario.
  • Las variables tipo tabla se crea y definen igual a las tablas con la diferencia que tienen una alcance de vida definido.
  • Se debe evaluar usando los planes de ejecución de cada opción entre Variables tipo tabla y tablas temporales.
  • Use las variables tipo tabla o las tablas temporales con conjunto de datos pequeños.

Continue reading

Funciones para control de Errores

Funciones para el manejo de errores

Las funciones para el manejo de errores permiten conocer los parámetros que reporta un error, las funciones son las siguientes: Continue reading

Controlando Errores en SQL Server

Manejando errores en SQL Server

Al usar el lenguage Transact-SQL debemos tener en cuenta, como en cualquier lenguaje de programación, que algunas instrucciones nos pueden dar errores debido a los valores de parámetros de entrada incorrectos o faltantes,
ingresos de datos con tipos incorrectos, falta de datos en un procedimiento o función definida por el usuario o de manera general en una transacción no finalizada de manera correcta. Continue reading