
Estándares y buenas prácticas en SQL Server
En este módulo aprenderás los principios fundamentales para escribir código SQL claro, seguro y mantenible en SQL Server . Cada sección aborda una práctica recomendada, explica su razón de…

En la convención de nombres para tablas, ¿cuál de los siguientes es correcto según el estándar presentado?
¿Qué problema puede surgir al omitir el esquema al referenciar una tabla?
¿Cuál es la recomendación respecto al prefijo "sp_" en nombres de procedimientos almacenados?
¿Qué beneficio aporta la documentación de propiedades extendidas a nivel de columna?
Al aplicar el principio de privilegios mínimos, ¿qué acción es más adecuada para un usuario que solo necesita leer datos de una tabla específica?
¿Cuál es la diferencia principal entre un prefijo "vw" y un prefijo "usp" en nombres de objetos?
En la generación de scripts de esquema para documentación, ¿qué objetivo principal se persigue?
¿Qué implica el uso de nombres calificados con cuatro partes al consultar un servidor vinculado?
Al documentar una tabla, ¿qué información es esencial incluir según las recomendaciones del material?
Estándares y buenas prácticas en SQL Server
En este módulo aprenderás los principios fundamentales para escribir código SQL claro, seguro y mantenible en SQL Server. Cada sección aborda una práctica recomendada, explica su razón de ser y muestra ejemplos que facilitan su aplicación en entornos reales.
1. Nombres de cuatro partes: claridad y ausencia de ambigüedad
Una referencia de cuatro partes sigue la sintaxis servidor.base_esquema.esquema.objeto. Esta convención es esencial cuando trabajas con múltiples bases de datos o servidores vinculados.
- Ventaja principal: Reduce la ambigüedad al identificar objetos en diferentes esquemas o bases de datos. Al especificar cada nivel, el motor sabe exactamente a qué tabla, vista o procedimiento se refiere, evitando colisiones inesperadas.
- Ejemplo práctico:
SELECT * FROM Servidor1.AdventureWorks2019.dbo.Cliente;
En este caso,Servidor1indica el servidor vinculado,AdventureWorks2019la base de datos,dboel esquema yClientela tabla. - Consejo SEO: al redactar documentación, incluye la frase "nombres de cuatro partes" varias veces, ya que es un término buscado por profesionales de bases de datos.
2. Convención de nombres para tablas
Una convención consistente mejora la legibilidad y facilita la colaboración entre equipos. La práctica recomendada en nuestro estándar es usar PascalCase sin prefijos ni comillas.
- Correcto:
CREATE TABLE Cliente ( ... ); - Incorrecto:
CREATE TABLE tblCliente ( ... );(prefijotblinnecesario) - Incorrecto:
CREATE TABLE "Mi Tabla" ( ... );(uso de comillas y espacio) - Beneficio: los nombres son fáciles de leer y de mapear a objetos de dominio en la capa de aplicación.
3. Importancia de especificar el esquema
Omitir el esquema al referenciar una tabla puede generar problemas de seguridad y rendimiento. SQL Server utiliza el esquema predeterminado del usuario (usualmente dbo), lo que puede no coincidir con el esquema deseado.
- Riesgo: SQL Server aplicará un esquema por defecto que puede no ser el deseado. Si el usuario tiene otro esquema, la consulta podría devolver datos de una tabla distinta o lanzar un error de objeto no encontrado.
- Mejor práctica: siempre incluir el esquema, por ejemplo
SELECT * FROM ventas.Pedido; - Ventaja adicional: mejora el plan de ejecución porque el optimizador localiza el objeto más rápidamente.
4. Prefijo sp_ en procedimientos almacenados
El prefijo sp_ está reservado por el motor para procedimientos del sistema. Utilizarlo en objetos de usuario puede provocar conflictos y degradar el rendimiento.
- Recomendación: evitar su uso en procedimientos creados por el usuario.
- Alternativa: emplear un prefijo propio como
usp_(User Stored Procedure) o, mejor aún, omitir prefijos y usar nombres descriptivos (ObtenerCliente). - Impacto: al usar
sp_, SQL Server busca primero en la caché de procedimientos del sistema, lo que genera búsquedas adicionales y posibles colisiones.
5. Propiedades extendidas a nivel de columna
Las propiedades extendidas permiten almacenar metadatos directamente en el catálogo del sistema, como descripciones o reglas de validación.
- Beneficio principal: permite almacenar descripciones directamente en el catálogo del sistema, facilitando la generación automática de documentación y la integración con herramientas de modelado.
- Ejemplo de uso:
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'Identificador único del cliente', @level0type = N'SCHEMA', @level0name = dbo, @level1type = N'TABLE', @level1name = Cliente, @level2type = N'COLUMN', @level2name = ClienteID; - Ventaja SEO: incluir términos como "propiedades extendidas" y "metadatos" ayuda a posicionar contenido técnico en buscadores.
6. Principio de privilegios mínimos
Aplicar el principio de privilegios mínimos protege la base de datos contra accesos no autorizados y reduce el riesgo de errores accidentales.
- Escenario típico: un usuario que solo necesita leer datos de una tabla específica.
- Acción recomendada: conceder permiso SELECT únicamente sobre esa tabla.
GRANT SELECT ON dbo.Ordenes TO UsuarioLectura;
- Errores comunes: asignar roles amplios como
db_ownerodb_datawriter, que otorgan más privilegios de los necesarios.
7. Prefijos vw y usp: significado y uso
Los prefijos ayudan a identificar rápidamente el tipo de objeto dentro del esquema.
vw: indica una vista. Las vistas son objetos de solo lectura que encapsulan consultas complejas.CREATE VIEW vw_ClientesActivos AS SELECT * FROM dbo.Cliente WHERE Estado = 'Activo';
usp: indica un procedimiento almacenado de usuario. Estos procedimientos pueden contener lógica de negocio, transacciones y manejo de errores.CREATE PROCEDURE usp_ActualizarSaldo @ClienteID INT, @Monto DECIMAL(10,2) AS BEGIN ... END;
- Ventaja: al leer el código, el prefijo comunica inmediatamente la naturaleza del objeto, mejorando la mantenibilidad.
8. Generación de scripts de esquema para documentación
Los scripts de esquema son una herramienta esencial para mantener un respaldo de definiciones de objetos y permisos para recreación futura. No sustituyen a las copias de seguridad, pero complementan la estrategia de recuperación.
- Objetivo principal: disponer de un archivo
.sqlque contenga CREATE TABLE, CREATE VIEW, CREATE PROCEDURE y los GRANT correspondientes. - Procedimiento típico en SSMS:
- Click derecho sobre la base de datos → Tasks → Generate Scripts.
- Seleccionar objetos a incluir (tablas, vistas, procedimientos, roles).
- Configurar opciones: incluir permisos, índices, triggers.
- Generar el script y guardarlo en un repositorio de control de versiones.
- Beneficio SEO: artículos que describen "cómo generar scripts de esquema" suelen atraer tráfico de administradores de bases de datos.
Resumen de buenas prácticas
- Usa nombres de cuatro partes cuando trabajes con servidores vinculados.
- Aplica PascalCase sin prefijos para nombres de tablas.
- Siempre especifica el esquema al referenciar objetos.
- Evita el prefijo
sp_en procedimientos de usuario. - Utiliza propiedades extendidas para documentar columnas.
- Concede solo los permisos estrictamente necesarios (principio de privilegios mínimos).
- Emplea prefijos claros:
vwpara vistas,usppara procedimientos de usuario. - Genera scripts de esquema regularmente y almacénalos en control de versiones.
Al aplicar estas normas, no solo mejorarás la calidad y seguridad de tus bases de datos, sino que también facilitarás la colaboración entre equipos y la capacidad de búsqueda en la web, gracias a un contenido estructurado y optimizado para SEO.
