Llaves foraneas que hacen referencia a una tabla

Esta semana se me presentó un reto, como parte del diseño e implementación del particionamiento de unas tablas en un cliente. Se me cruzó por el camino la necesidad de recrear una llave primaria. Si dicha llave primaria está referenciada por una o varias llaves foráneas, SQL Server activa los mecanismos de integridad referencial e[…]

Simples consejos, SQL Server más rápido

Allá por el año 2011 comencé este blog explicando una de las prácticas más importantes pero menos conocidas en SQL Server. La implementación de los archivos de base de datos. Ese primer artículo se titula… Archivos de Base de Datos. ;) Todos queremos que nuestro SQL Server sea rápido, verdad? El problema es que se cree[…]

Script–Situación de los backup de base de datos

Lo sabemos. Debemos tener copias de respaldo de las bases de datos. ¿Pero, estamos seguros de que las tenemos? ¿Para todas las bases de datos? ¿De la forma correcta?. No son pocas las veces que recibo llamadas para consultarme si hay una forma alternativa de recuperar una base de datos, porque “se acaban de dar[…]

Script – automatizar restauración de una base de datos de prueba

En muchos clientes nos toca mantener en línea una copia de la base de datos de producción, para que se use como entorno de pruebas o de Aseguramiento de la Calidad. Por épocas necesitamos realizar a diario esa operación. Este script es un proceso estándar que permite restaurar cualquier base de datos en el mismo[…]

Script – Poblar la tabla de dimensión de tiempo para un datawarehouse

En mi experiencia, todos los datawarehouse que he diseñado incluyen la dimensión de tiempo. El análisis por fechas es básico en la mayoría de organizaciones que analizan sus datos La dimensión tiempo permite establecer los niveles de análisis temporal y las jerarquías de tiempo para la agregación de los hechos. Los niveles y jerarquías pueden[…]

Script – Obtener lista de columnas de una tabla

Una de las buenas prácticas de SQL Server indica que debemos incluir explícitamente las columnas de una tabla en una sentencia SELECT. Es decir, evitar utilizar SELECT *. Encontrar la lista de columnas de una tabla es fácil. Usando el procedimiento almacenado sp_help podemos listar (entre otras cosas) las columnas. Solo que aparecen como un[…]

Nuevas funciones de SQL Server. CONCAT

Hasta la versión 2008 R2 de SQL Server, cuando se requería concatenar cadenas de caracteres se usaba el operador +. A partir de la versión 2012 contamos con la función CONCAT. Haciendo clic aquí podemos conocer lo que indican los libros en línea sobre esta función. Vamos a conocer las principales diferencias entre usar el operador[…]

Limpieza de caracteres en cadenas de texto

Muchas veces requerimos cargar información a alguna tabla, y la fuente contiene cadenas “sucias”. Es decir, esas cadenas incluyen caracteres que no deseamos cargar. Un ejemplo típico es cuando las cadenas traen números y solo requerimos cargar los caracteres, o viceversa.

Navegando por Internet encontré una función en el blog de Pinal Dave, la cual he tomado como base para desarrollar la siguiente función, la cual recibe como parámetros la cadena que se desea evaluar y que acción deseamos ejecutar: Limpiar números o limpiar letras u otros caracteres.

Aquí el código: […]

Obtener detalle de las características del Servidor

En varias oportunidades me he encontrado frente a un servidor de SQL Server teniendo que realizar diversas tareas de administración o afinamiento. En ese momento comienzo a preguntarme que es lo que tengo adelante. Necesito respuesta a preguntas como ¿cuál   es la versión o la edición? ¿cuanta memoria o CPUs tiene? ¿cómo se llama la instancia?

La mayoría de esa información la puedo obtener a través de Management Studio, pero implica hacer varios clics por diferentes opciones del sistema, lo cual puede consumir tiempo.

El siguiente script obtiene información en una sola consulta, utilizando funciones de metadatos y […]

Clausula OUTPUT en SQL SERVER

Generalmente, uno no espera que una sentencia de modificación haga más que modificar datos. Es decir, no esperamos que una sentencia de modificación retorne un resultados. Sin embargo, en algunos escenarios el poder recuperar datos de registros modificados puede ser útil.

Hasta el día de hoy, y desde versiones anteriores de SQL Server, los triggers nos brindan la posibilidad de acceder a las tablas virtuales deleted e inserted en las cuales, solamente durante la ejecución del trigger se podía recuperar, generalmente para razones de auditoría, los registros que eran eliminados, modificados o insertados. Bien, desde SQL Server 2005, existe la opción de […]