Foreign key en SQL Server

Foreign key en SQL Server

Relacionando tablas en SQL Server, para relacionar dos tablas en una base de datos en SQL Server se debe usar la restricción de tipo Foreign Key que permite establecer las reglas de negocio entre dos entidades, lo que se convierte en la relación entre dos tablas de la base de datos.

Seguir leyendo

Usando cursor en SQL Server

Usando Cursores en SQL Server

Los cursores permiten almacenar los datos de una consulta T-SQL en memoria y poder manipular los datos de los elementos resultantes para realizar operaciones con ellos. Se recomienda su uso con cierto cuidado porque consume mucha memoria, la instrucción select que llena el cursor debe ser lo más selectiva posible.

Seguir leyendo

Merge en Graph Tables

Usando Merge en Graph Tables SQL Server

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.

Seguir leyendo

Usando Merge con Select

Usando Merge con una consulta como origen

La instrucción Merge realiza instrucciones de inserción de registros, actualización o eliminación de registros en una tabla de destino en la misma base de datos o en otra base de datos según los resultados de combinar los registros con una tabla de origen, esta tabla origen puede ser una consulta Select.

Seguir leyendo

ColumnStore index en SQL Server

ColumnStore index en SQL Server

La importancia de los índices en las consultas radica en que estos van a permitir optimizar la obtención del conjunto de resultados.
Los índices son estructuras que ordenan los registros de una tabla o vista por uno o más campos de manera ascendente o descendente.
Los índices en una tabla o vista guardan todas las columnas del registro, si es necesario buscar un campo de un registro específico lo que hace la consulta es leer toda la fila y luego extraer el dato que se requiere. Los Column Store Index almacenan los datos en columnas, esto mejora la compresión de datos, reduce considerablemente los datos de E/S ya que se leerán solamente las columnas necesarias y mejora el desempeño. En este artículo se va a explicar el uso de los Column Store index.

Seguir leyendo

Grouping Sets en SQL Server

Uso de Grouping Sets en SQL Server

Los agrupamiento en SQL Server permiten mostrar un conjunto de resultados donde una o mas columnas que se muestran es el resultado del uso de alguna de las funciones de agregado que calculan suma, promedio,
máximo, mínimo, etc.
Si se desea mostrar mas de un agrupamiento en el mismo conjunto de resultado se deberá usar los Grouping Sets, estos son similares al uso del operador Union All. En este artículo se desea explicar como se usa la opción
Grouping Sets para mostrar múltiples resultados de agrupamientos en la misma instrucción. Adicionalmente se muestra como se usa la función Grouping.

Seguir leyendo

Pivot y procedimientos almacenados

Usando Pivot y Procedimientos almacenados

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. En este
artículo se presentan varios ejercicios usando el operador Pivot usando procedimientos almacenados para hacer las consultas dinámicas.

Seguir leyendo

Reconstruir índices en SQL Server

Reconstruir los índices en SQL Server

Índices en SQL Server

Un índice de SQL Server es una estructura en disco o en memoria asociada con una tabla o vista que acelera la recuperación de filas de la tabla o vista. Un índice contiene claves generadas a partir de una o varias columnas de la tabla o la vista.
El diseño eficaz de los índices tiene gran importancia para conseguir un buen rendimiento de una base de datos y una aplicación, es por ese motivo que no solamente es muy útil crearlos sino cada cierto tiempo reconstruirlos, este tiempo para a depender de la cantidad de información que cambia en el indice en la tabla o vista.

Seguir leyendo

Función String_split SQL Server

Usando la Función String_split

Microsoft SQL Server en la versión 2017 ha incluído algunas funciones interesantes para el manejo de cadenas de texto, una de ellas es la función String_agg, la que permitía convertir un conjunto de valores de cadena a una cadena separada por un caracter. En este artículo se explica como se usa la función String_Split que hace lo inverso de la función String_agg.
Ver Función String_agg

Seguir leyendo

Cross Apply y Outer Apply SQL Server

Uso de Cross Apply y Outer Apply

La cláusula CROSS APPLY de la instrucción select se comporta de manera similar a una subconsulta correlacionada, con la diferencia que nos permite usar la cláusula ORDER BY dentro de la subconsulta.
Esto es muy útil cuando se requiere registros superiores o inferiores de una subconsulta para usarlo en una subconsulta externa.
La subconsulta de la cláusula CROSS APPLY se puede reemplazar por una función definida por el usuario que reporta una tabla.

Seguir leyendo