The SQL Booklet · SQL Server
SQL Server para el trabajo de todos los días.
Sintaxis, exploración y diagnóstico reunidos en un mismo lugar. Cada entrada conserva una etiqueta para que puedas reconocer su enfoque sin recorrer categorías separadas.
Buscar texto dentro de procedimientos, vistas y funciones
Localiza dónde aparece el nombre de una tabla, columna o llamada dentro de los módulos visibles de una base.
Consultar Desarrollo y exploraciónBuscar una columna en toda la base de datos
Encuentra en qué tablas aparece una columna y revisa sus propiedades estructurales básicas.
Consultar ReferenciaCASE: expresar decisiones dentro de una consulta
Una consulta no siempre debe devolver el valor exactamente como está almacenado. A veces necesitamos clasificar una existencia, traducir un estado o calcular un valor distinto segú…
Consultar ReferenciaCAST, CONVERT, TRY_CAST y TRY_CONVERT: controlar tipos de datos
SQL Server puede convertir algunos valores de forma implícita, pero confiar en ello puede ocultar errores, alterar comparaciones o impedir que un índice se utilice con eficiencia.
Consultar ReferenciaCOALESCE, ISNULL y NULLIF: trabajar con valores ausentes
Un valor NULL representa información desconocida o no disponible. No equivale a cero ni a una cadena vacía, y puede propagarse a través de expresiones que parecían sencillas.
Consultar ReferenciaCOUNT, SUM, AVG, MIN y MAX: resumir un conjunto
A veces no necesitamos observar cada producto por separado. Queremos saber cuántos están activos, cuánto suman sus precios o cuáles son los valores mínimo y máximo del catálogo.
Consultar ReferenciaDECLARE, SET y asignación con SELECT: trabajar con variables
Una consulta reutilizable no debería obligarnos a modificar valores dispersos dentro del código. Las variables permiten nombrar una fecha, un identificador, un límite o un resultad…
Consultar ReferenciaDELETE y TRUNCATE: retirar datos con alcances diferentes
Eliminar información exige distinguir dos intenciones: borrar filas seleccionadas o vaciar una tabla completa. DELETE y TRUNCATE TABLE pueden dejar una tabla sin datos, pero no sig…
Consultar Desarrollo y exploraciónDetectar registros duplicados por una clave de negocio
Localiza grupos repetidos con una regla explícita antes de decidir si deben corregirse o conservarse.
Consultar ReferenciaDISTINCT, TOP y ORDER BY: reducir y ordenar un resultado
Una consulta puede devolver todas las filas que cumplen una condición y aun así no responder exactamente lo que buscamos. Quizá necesitamos conocer los estados existentes sin repet…
Consultar Diagnóstico y optimizaciónEncontrar consultas con mayor consumo total de CPU
Prioriza las sentencias que más CPU han acumulado entre los planes que todavía permanecen en caché.
Consultar ReferenciaFunciones de fecha: calcular periodos y construir límites seguros
Las fechas representan instantes o periodos, no textos con un formato visual. Para sumar días, medir diferencias, obtener fin de mes o construir una fecha utilizamos funciones temp…
Consultar ReferenciaFunciones de texto: construir, localizar y normalizar cadenas
Los textos suelen llegar con mayúsculas diferentes, espacios adicionales o fragmentos que necesitamos localizar. SQL Server incluye funciones para combinar, extraer, buscar, reempl…
Consultar ReferenciaGROUP BY y HAVING: resumir y filtrar por grupo
Un total general puede decirnos cuántos pedidos existen, pero no cómo se distribuyen. Si necesitamos una cantidad por cliente, por estado o por mes, debemos formar grupos antes de …
Consultar Diagnóstico y optimizaciónIdentificar sesiones bloqueadoras y bloqueadas
Relaciona solicitudes bloqueadas con sus bloqueadores y reúne información útil para continuar el diagnóstico.
Consultar ReferenciaIF, ELSE y BEGIN...END: decidir qué instrucciones ejecutar
Algunos procesos deben seguir rutas distintas según exista información, un parámetro sea válido o una operación haya afectado filas. IF evalúa una condición y decide qué instrucció…
Consultar ReferenciaINNER JOIN: conservar las coincidencias
Tenemos clientes en una tabla y pedidos en otra. Las dos contienen información distinta sobre la misma operación: una identifica a la persona y la otra registra lo que ocurrió con …
Consultar ReferenciaINSERT: agregar filas de forma explícita
Cuando registramos un cliente, un pedido o un movimiento de inventario necesitamos crear filas nuevas. INSERT indica la tabla de destino, las columnas que recibiremos y los valores…
Consultar ReferenciaJSON: leer, transformar y producir documentos desde SQL Server
Una API o integración puede entregar un documento JSON que necesitamos validar y convertir en filas. SQL Server incluye funciones para consultar valores, abrir arreglos, modificar …
Consultar ReferenciaLEFT, RIGHT y FULL JOIN: conservar filas sin coincidencia
Un INNER JOIN responde bien cuando solo nos interesan las filas relacionadas. El problema cambia cuando también necesitamos ver lo que quedó fuera: clientes sin pedidos, productos …
Consultar ReferenciaOFFSET y FETCH: dividir un resultado ordenado en páginas
Una pantalla de búsqueda rara vez muestra miles de filas a la vez. Necesitamos solicitar una porción del resultado: la primera página, la segunda o cualquier bloque posterior.
Consultar ReferenciaOperadores de comparación y lógicos: construir condiciones precisas
Una condición puede ser sintácticamente válida y aun así seleccionar filas distintas a las que imaginamos. Los operadores de comparación evalúan valores; AND, OR y NOT permiten com…
Consultar ReferenciaOVER y PARTITION BY: calcular sin perder el detalle
Una agregación con GROUP BY reduce varias filas a un resumen. Eso funciona cuando solo necesitamos el total, pero no cuando queremos conservar cada partida y mostrar junto a ella e…
Consultar ReferenciaProcedimientos almacenados: encapsular una operación con parámetros
Cuando una consulta debe ejecutarse desde varias aplicaciones o necesita combinar validaciones, lecturas y modificaciones, un procedimiento permite darle un nombre y una interfaz e…
Consultar Diagnóstico y optimizaciónRevisar sugerencias de índices faltantes
Ordena las sugerencias observadas por SQL Server y reconoce cuáles merecen una evaluación cuidadosa.
Consultar ReferenciaROW_NUMBER, RANK y DENSE_RANK: numerar y clasificar filas
Ordenar un resultado no asigna una posición que podamos reutilizar. Si necesitamos elegir el pedido más reciente de cada cliente, numerar resultados o representar empates, utilizam…
Consultar ReferenciaSELECT y FROM: elegir qué información queremos leer
Una tabla puede contener decenas de columnas, pero una consulta rara vez necesita mostrarlas todas. A veces buscamos el nombre y el correo de un cliente; otras veces necesitamos su…
Consultar ReferenciaSTRING_AGG y STRING_SPLIT: reunir y separar texto delimitado
Algunas salidas necesitan presentar varios valores en una sola cadena; otras reciben una cadena con elementos delimitados que debemos convertir en filas. STRING_AGG reúne y STRING_…
Consultar ReferenciaSubconsultas, EXISTS y NOT EXISTS: utilizar resultados relacionados
Una consulta puede necesitar la respuesta de otra: saber si un cliente tiene pedidos, comparar un precio con el promedio o recuperar un valor calculado para la fila actual.
Consultar ReferenciaTablas temporales y variables de tabla: conservar resultados durante un proceso
Algunas tareas necesitan separar una consulta compleja en etapas, reutilizar un conjunto o inspeccionarlo antes de modificar datos. SQL Server ofrece tablas temporales y variables …
Consultar ReferenciaTransacciones y TRY/CATCH: completar o revertir una unidad de trabajo
Cuando una operación modifica varias tablas, conservar solo la primera mitad puede dejar datos inconsistentes. Una transacción agrupa instrucciones para confirmarlas juntas con COM…
Consultar ReferenciaUNION y UNION ALL: combinar resultados compatibles
Algunas veces la información vive en tablas distintas pero representa el mismo tipo de entidad. Podemos tener pedidos actuales y pedidos históricos, o resultados provenientes de do…
Consultar ReferenciaUPDATE: modificar únicamente las filas previstas
Actualizar datos parece sencillo hasta que una condición afecta más filas de las esperadas. La parte esencial de un UPDATE no es la asignación, sino demostrar antes cuáles filas ca…
Consultar ReferenciaVistas: nombrar y reutilizar una consulta
Una misma selección puede aparecer en reportes, integraciones y pantallas diferentes. Una vista asigna un nombre a esa consulta y presenta su resultado como un objeto reutilizable.…
Consultar ReferenciaWHERE: decidir qué filas cumplen la condición
Seleccionar las columnas correctas no siempre es suficiente. Podemos necesitar únicamente clientes activos, pedidos confirmados o movimientos ocurridos dentro de un periodo.
Consultar ReferenciaWITH y CTE: nombrar un resultado intermedio
Una consulta extensa puede repetir cálculos, mezclar demasiados niveles o esconder la intención principal. Una expresión de tabla común, conocida como CTE, permite dar nombre a un …
ConsultarNo encontramos una entrada con esas palabras.