Campos XML en SQL Server

Como usar campos XML en SQL Server

Los datos de tipo XML son muy efectivos cuando se manejan correctamente en las tablas. Se pueden usar campos de tipo XML para poder almacenar en la misma tabla datos similares a un Maestro – Detalle sin necesidad de otra tabla. Continue reading

Triggers – Historial de registros eliminados

Trigger historial de eliminados

Los Triggers son una herramienta muy poderosa para asegurar integridad de datos, posibilidad de recuperar los datos si se usa una eliminación usando Delete, guardar historial de acciones para efectos de auditoria (Ver Historial con Triggers),  acciones que pueden reemplazar a la inserción  (Ver Triggers Instead of), etc. Continue reading

FileTables y FileStream en SQL Server

FileTables y FileStream

Como usar tablas de Archivos en SQL Server

Características

  • La característica FileTable brinda compatibilidad con el espacio de nombres de archivos de Windows y la compatibilidad con las aplicaciones de Windows con los datos de archivos  almacenados en SQL Server.
  • FileTable permite que una aplicación integre sus componentes de almacenamiento y administración de datos, y proporciona servicios integrados de SQL Server, que incluyen búsqueda de texto completo y búsqueda semántica, sobre datos no estructurados y metadatos.
  • Con el uso de FileTables se puede almacenar archivos y documentos en tablas especiales en SQL Server llamadas FileTables, pero acceda a ellos desde las aplicaciones de Windows como si estuvieran almacenados en el sistema de archivos, sin realizar ningún cambio en las aplicaciones de sus clientes.
  • La característica FileTable se basa en la tecnología FILESTREAM de SQL Server.

Continue reading

Estructura Case y Joins


Estructura Case comparada con Join

La estructura Case evalua una expresión que retorna múltiples resultados, por ejemplo una expresión que evalúa el número de día de la semana puede dar como resultado los valores del 1 al 7, considerando que el número 1 es el día Lunes, el número 2 es el Martes, etc. Continue reading

Comandos DBCC

Comandos DBCC

DataBase Command Console

SQL Server tiene un conjuntos de comandos llamados Comandos de Consola de Base de datos, sus siglas en inglés DBCC que significan Database Command Console.

Los comandos de consola de base de datos se dividen en las siguientes categorías.

  1. Mantenimiento: Tareas de mantenimiento en las bases de datos, los índices o los grupos de archivos.
  2. Varias: Tareas varias como habilitar marcas de seguimiento o quitar una DLL de la memoria.
  3. Informativa: Tareas que recopilan y muestran diversos tipos de información.
  4. Validación: Operaciones de validación en una base de datos, tabla, índice, catálogo, grupo de archivos o asignación de páginas de base de datos.

Continue reading

Tipos definidos por el usuario con formato de tabla

Como crear Tipos de datos definidos por el usuario con formato de tabla

Insertar varios registros a la vez

Los tipos de datos definidos por el usuario son bastante útiles para estandarizar los  tipos de datos en las tablas, estos son creados en base a los tipos de datos nativos de  SQL Server (Ver Tipos de datos definidos por el usuario). Continue reading

Secuencias en SQL Server

Como crear Secuencias en SQL Server

Se puede definir una secuencia como un conjunto de valores que parten de un valor inicial, tienen un incremento o decremento, lo que significa que la secuencia puede ser ascendente o descendente y pueden tener un valor final. Continue reading

Procedimientos Almacenados con parámetros de salida

Procedimientos Almacenados con parámetros de salida

Los procedimientos almacenados son bloques de código reutilizable guardados en la base de datos que tienen un propósito. (Ver Procedimientos Almacenados)

Existen procedimientos almacenados que no tienen parámetros, es decir, no necesitan de ningún valor para que se ejecuten, las tareas que realizan estos generalmente son sencillas. Continue reading

Funciones definidas por el usuario con valores de tabla

Funciones definidas por el usuario con valores de tabla

  • Las funciones definidas por el usuario con valores de tabla son las funciones que devuelven un tipo de datos table.
  • Estas funciones son una alternativa eficaz  a las vistas. (Ver vistas).
  • Las funciones definidas por el usuario con valores de tabla pueden ser utilizadas cuando se permitan expresiones de vista o de tabla en las consultas Transact-SQL.
  • Las funciones definidas por el usuario con valores de tabla pueden contener instrucciones adicionales mejorando la lógica de las vistas.
  • Las vistas sólo permiten a una única instrucción SELECT, las funciones definidas por el usuario puede tener joins y agrupamientos.
  • Una función definida por el usuario con valores de tabla puede reemplazar también a procedimientos almacenados que devuelven un solo conjunto de resultados.
  • Al usar una función definida por el usuario con valores de tabla, este se escribe en la cláusula FROM de una instrucción Transact-SQL, a la función se le deben dar los valores para cada parámetro especificado en la creación.

Continue reading

Pivot

Como usar Pivot en SQL Server

Las operaciones con Pivot nos permitirá convertir los resultados de una consulta que se presentan en filas y mostrarlos en columnas.
Pivot utiliza las funciones de agregado para presentar los datos en columnas.

Para información de las funciones de agregado Ver Funciones de agregado.  Continue reading

Triggers Instead Of en SQL Server

Triggers de Tipo Instead of

Los triggers instead of son un tipo de Triggers que reemplazan las instrucciones que hace que se dispare, use estos tipos de Triggers cuando es necesario comprobar algunas condiciones al momento de realizar transacciones con los registros de tablas o vistas.

Por ejemplo: si se crea un Trigger de tipo instead of para la tabla Clientes al insertar un registro, al ejecutar un Insert es cuando este tipo de Trigger se va a ejecutar en lugar de la instrucción Insert en la tabla o vista.


Notas importantes

1. Estos tipos de triggers cancelan la instrucción que hace que se dispare, reemplazando
esta por las instrucciones del Trigger.
2. Generalmente se utilizan estos triggers en vistas
3. Las acciones que realice el trigger no deben cancelar la transacción que la dispara sino ejecutar las instrucciones cambiadas que son el cuerpo del trigger. Continue reading

Select – Teoría

Instrucción Select

Permite la visualización de la información contenidas en las tablas o vistas de la base de datos

Sintaxis

La forma de usar la instrucción select es compleja, un resumen de las opciones se muestra en las líneas a continuación, es necesario anotar que se pueden combinar las opciones. Continue reading

Select – Uso de Alias

Uso de Alias para Tablas y Campos en Select

Los alias para los campos o para la tabla son nombres asignados que aparecen en la ejecución de la consulta. Los nombres en la base de datos no cambian. Los alias pueden ser usados en el ordenamiento de los registros que forman el grupo de resultado de la consulta.(Ver Ordenamientos) En consultas donde se extrae la información desde varias tablas es necesario usar alias para las tablas y los campos para evitar ambigüedades lo que hace que la consulta reporte error. (Ver Joins) Continue reading

Ordenamientos – Order by

Ordenar el conjunto de resultados del select

En muchas ocasiones se requiere listar los registros en un determinado orden, para esto se debe utilizar de manera correcta la cláusula Order by de Select

Ordenamientos

  • La Cláusula Order By, debe ir al final de la instrucción.
  • Se puede usar el nombre de campo, el alías o el número de orden del campo
  • Se puede usar Desc y Asc (por defecto), se puede ordenar por varios campos
  • Es posible usar un campo que no aparece en la lista de campos como el campo de ordenamiento. Continue reading

Consultas de varias tablas – Usando Join

Select desde varias tablas – Uso de Joins

Para escribir consultas cuyos datos que se desea mostrar se encuentran en varias tablas es necesario que estas estén CORRECTAMENTE relacionadas, antes de hacer las consultas desde varias tablas se deben evitar y corregir los valores Null en la base de datos.

Para optimizar las columnas desde varias tablas se recomienda usar  Join de la manera como se muestran en los ejercicios. Siempre hay una tabla desde donde se va a listar los registros y otras desde donde se van a extraer valores para completar el listado con datos que la hacen mas detallada.

Continue reading

Consultas – Opciones

Opciones en un Listado con Select

Las opciones de un listado con la instrucción select permiten modificar el conjunto de resultados, las opciones son cláusulas adicionales que nos permiten reducir la cantidad de registros en el listado, mostrar registros únicos, obligar al optimizar a usar un  índice, combinar dos instrucciones, entre otras opciones.

Las opciones son:

Opción Explicación
Top Limita las filas del conjunto de resultados. Se puede usar con un valor n o especificar un porcentaje.
With Ties Permite mostrar registros que hayan sido limitados usando la opción Top pero que tienen un valor igual al último registro que aparece.
Distinct Permite mostrar valores sin duplicados en una consulta.
With (index…) Obliga al optimizador a usar un índice específico.
Union Permite unir diferentes consultas en un solo conjunto de resultados.
Into Tabla Permite crear una tabla con el conjunto de resultados.
Offset y Fetch Next Permiten listar un grupo de resultados que aparecen ordenados pero sin incluir los primeros.

Continue reading

Uso de With Ties en Consultas – Select

With Ties en Select

  • La opción With Ties en una instrucción select se utiliza cuando se usa la cláusula Top n [Percent]. (Ver Opciones de Select)
  • El uso de With ties en el listado permite mostrar los registros que tienen los mismos valores que el último mostrado de acuerdo a la cantidad mostrada por Top n o Top n Percent.
  • El uso de Top debe ir acompañado con la cláusula Order By. (Ver Ordenamientos)

Continue reading

Agrupamientos – Group By – Filtros Having

Agrupamientos en Select  – Usando Group by

Los agrupamientos en SQL Server se utilizan cuando en un listado existen funciones de agregado en algunos campos con campos que no las tienen.

Generalmente los agrupamientos se utilizan para mostrar resultados estadísticos con datos de varias tablas (Ver Joins). También en muchas ocasiones se puede hacer el listado usando Subconsultas. Puede usar el Plan de ejecución para analizar cual de las opciones es la mejor según el diseño de las tablas utilizadas. Continue reading

Esquemas – Crear – Modificar – Eliminar

Esquemas en SQL Server

Los esquemas en SQL Server permiten organizar los elementos asegurables como tablas, vistas, procedimientos almacenados, etc y poder administrar mejor los permisos sobre estos. (Ver Permisos con Grant)

En una base de datos se pueden incluir los elementos de varios módulos que se desarrollen en una organización, por ejemplo, el módulo de Ventas, el de Planilla, el módulo de Contabilidad, etc y es obvio que la mayor parte de asegurables de cada uno de los módulos no son compartidos, es decir, el que tiene permisos para ver los asegurables del esquema de Ventas no tiene acceso a los de Contabilidad, eso es posible usando permisos y los asegurables en Esquemas. Continue reading

Create Table – Teoría

Creación de Tablas 

La información guardada en la base de datos se almacena en tablas, estas deben partir de un diseño de base de datos previo. Las tablas son el resultado de un proceso de diseño detallado que incluye reglas de normalización y criterios propios del diseñador y requisitos del sistema.

Las tablas en una base de datos deberían de alguna forma estar todas relacionadas, es recomendable usar tipos de datos similares y antes del diseño de las tablas, es muy útil crear tipos de datos definidos por el usuario para estandarizar el diseño. (Ver tipos de datos definidos por el usuario)

Continue reading