Uso de Variables Globales (DTS SQL Server 2000)

Algo muy importante y potente que tenemos dentro de los DTS de SQL 2000 es el uso de variable globales, por ejemplo podemos tener el problema de querer traer registros a una tabla a partir de una fecha en particular o un cálculo específico, si el sistema del que extraemos datos y a la BD en la que insertamos esos datos están en SQL Server, no es demasiado problema porque podemos aplicar esos filtros con subconsultas, pero qué sucede cuando el sistema origen se encuentra en Oracle o Sybase, o cualquier motor distinto de SQL Server, con una simple subconsulta no podemos lograrlo, debemos utilizar si o si variables globales. ¿Porqué son globales? Porque al contrario de las variables que definimos dentro de un store procedure con la sentencia declare nombre as tipoDeDato  y les asignamos un valor con una sentencia por ejemplo así:

SELECT @variable1 = fecha  FROM Tabla

Las variables globales las generamos con las “Tareas de Ejecución de SQL”

imagen1.jpg

Dentro de esa tarea seleccionamos una conexión que puede ser a cualquier motor de BD (previamente creada obviamente), y escribimos nuestro SQL del dato que queremos traer.

imagen2.jpg

Luego hacemos clic en el botón “Parámetros” y tenemos dos solapas, una que dice “Parámetros de Entrada” y “Parámetros de Salida”, como nosotros en este caso queremos generar un parámetro o variable de salida seleccionamos la segunda solapa.

imagen3.jpg

Como el resultado que obtenemos de la consulta es un solo registro, seleccionamos “Valor de Fila”, si lo que obtenemos es un conjunto de filas (Recordset para los familiarizados con Visual Basic) seleccionamos “Conjunto de Filas”, y hacemos clic en “Crear Variables Globales”

Una vez creada la variable, asignamos al parámetro (nombre de columna resultado de query generada previamente) la variable global que hemos creado, hasta aquí está creada y cuando se ejecute el DTS se llenará con el resultado de esa query, ahora falta saber cómo usamos esa variable en otro objeto, que puede ser una “Tarea de Transformación de Datos”, una “Tarea de Secuencias ActiveX”, etc.

Nosotros en este ejemplo vamos a utilizarla en una “Tarea de Transformación de Datos”

imagen4.jpg

Creamos las conexiones origen y destino pertinentes, y en la tarea de transformación de datos escribimos una query por ejemplo así:

imagen5.jpg

Al escribir una condición igualando al signo “?”, SQL Server se da cuenta que estamos por asignar una variable a ese parámetro, hacemos clic en “Parámetros”  y seleccionamos el parámetro creado.

Este es uno de los usos más simples que tenemos de variables globales, de aquí para adelante se pueden hacer muchas cosas más, la variable dura lo que dura la ejecución del DTS, al igual que una variable de SP dura lo que dura la ejecución del SP.

Bueno, espero le sirva a alguien esta opción de utilizar variables globales en los DTS, se aceptan críticas y/o sugerencias respecto a variables globales. Próximamente veremos cómo hacer lo mismo y más en SSIS (podríamos decir que son los DTS de SQL Server 2005)

Saludos!

Explore posts in the same categories: Técnico

Comment: