Como usar constraints en SQL Server

Usando restricciones en tablas en SQL Server

Al diseñar una base de datos, una de las mejores formas de trabajar es diseñar correctamente las tablas, los datos ingresados deben casi siempre de cumplir ciertas reglas, las cuales se pueden conseguir usando las restricciones para los campos de cada tabla.

Continue reading

Comparando Agrupamientos, Subconsultas y FDU

Comparando agrupamientos, Subconsultas y FDU en SQL Server

Una consulta que tiene agrupamientos se puede extraer usando también subconsultas y funciones definidas por el usuario. Este artículo explica como se debe analizar el resultado en la extracción de datos desde varias tablas, compararemos los valores del «Plan de ejecución estimado» de las siguientes tres maneras:

  1. Usando Joins y agrupamientos
  2. Usando Subconsultas
  3. Usando Funciones definidas por el usuario
Continue reading

Variables en SQL Server

Como usar variables en SQL Server

SQL Server permite el manejo de variables en la implementación de códigos T-SQL en cualquiera de los objetos que el usuario necesite crear, pudiendo ser procedimientos almacenados, cursores, triggers, funciones definidas por el usuario, etc.
Las variables definidas en SQL Server al igual que cualquier otro programa tienen un ámbito, que puede ser desde un conjunto de instrucciones, una estructura condicional (Ver estructura If… Else) (Ver Case), una estructura repetitiva o una transacción.

Continue reading

Partición horizontal de tablas existentes en SQL Server

Partición horizontal de tablas existentes en SQL Server

La partición de las tablas es una práctica que permite aumentar la eficiencia en el almacenamiento de la información cuando se trata de tablas grandes, una tabla grande puede tener muchos campos, lo que se recomienda una partición vertical o puede tener muchos registros por lo que se recomienda una partición horizontal.

Continue reading

Uso de Offset y Fetch Next en Select

Usando OffSet y Fetch next en Select de SQL Server

La instrucción Select (Ver Select) tiene varias opciones que se pueden incluir según las necesidades de la presentación de la información extraída de una o más tablas. En ocasiones es necesario mostrar los registros en un determinado orden, ya sea ascendente o descendente por uno o mas campos, para ello podemos usar la cláusula Order by (Ver Ordenamientos), lo que permitirá mostrar el resultado obtenido con un orden especificado, y de acuerdo a uno o más campos.

Continue reading

Funciones Trim, Concat_ws y String_agg SQL Server 2017

Funciones Trim, Concat_WS y String_Agg de SQL Server 2017

SQL Server provee funciones nuevas, este artículo describe las nuevas funciones Trim, la función Concat_ws y la función String_agg propias de SQL Server 2017.

Continue reading

Uso de On Filegroup en Select into

Uso de Select Into en un Filegroup

Como usar into en Select

La instrucción Select permite extraer la información guardada en las tablas de la base de datos, en ocasiones es necesario conservar los datos de una consulta y para eso podemos crear una tabla con el resultado de la consulta usando la opción Into (Ver Opciones de Select) seguido del nombre de la tabla que generalmente puede ser una tabla de uso temporal (Ver Tablas Temporales).

Continue reading

Dynamic Data Masking en SQL Server

Dynamic Data Masking

SQL Server desde la versión 2016 incluye una nueva característica de enmascaramiento de datos dinámico que permite dar cierto grado de seguridad para poder cambiar los caracteres que se visualizan por
caracteres diferentes.

Continue reading

Como usar Graph Tables en SQL Server

Usando Graph Tables

Aplica para SQL Server 2017

SQL Server 2017 permite manejar las relaciones entre tabla de cuya cardinalidad es de muchos a muchos con las opciones de Graph Tables, se pueden manejar de manera clásica creando una tabla adicional para las relaciones de muchos a muchos.

SQL Server 2017 provee el concepto de base de datos gráfica, con tablas Node y tablas Edge donde se insertan las relaciones.

Conceptos básicos

  • Una base de datos gráfica es una colección de nodos (o vértices) y bordes (o relaciones).
  • Un nodo representa una entidad (por ejemplo, una persona o una organización) y un borde representa una relación entre los dos nodos que conecta (por ejemplo, grupos o amigos). Tanto los nodos como los bordes pueden tener propiedades asociadas a ellos.

Continue reading

Como usar 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 – Como crear un historial de registros eliminados en SQL Server

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

Como usar FileTables y FileStream en SQL Server

FileTables y FileStream

Como usar FileTables 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

Como usar Case y Joins en SQL Server


Estructura Case comparada con Join

Como usar Case en SQL Server

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 en SQL Server

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 en SQL Server

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