SQL Command

SQL Command ejecuta uno o varios comandos SQL para cada registro en el flujo de datos. Puede utilizar el SQL Command para lo siguiente:

  • Ejecutar las instrucciones INSERTAR/ACTUALIZAR complejas, como por ejemplo instrucciones que contengan subconsultas/uniones con otras tablas.
  • Actualizar tablas luego de insertar/actualizar datos para mantener la integridad de la referencia.
  • Actualizar o eliminar un registro en una base de datos antes de cargar un reemplazo de registro.
  • Actualizar múltiples tablas en una única transacción.

Puede ejecutar SQL Commands adicionales antes y después de ejecutar los principales SQL Commands, y puede invocar procedimientos almacenados.

Nota: Los procedimientos almacenados invocados desde SQL Command no deben utilizar parámetros OUT.
Nota: Se pueden lograr mejoras significativas del rendimiento mediante el uso de múltiples instancias de ejecución de SQL Command. Para especificar las múltiples instancias de ejecución, haga clic en el botón Runtime (Ejecución).

General

La pestaña General es donde usted especifica las instrucciones SQL dinámicas que desea ejecutar una vez para cada registro. La siguiente tabla describe las opciones disponibles en la pestaña General.

Opción Descripción

Conexión

Seleccione la conexión de base de datos que quiere utilizar. Las opciones pueden variar según las conexiones definidas en el Administrador de conexión de base de datos de Management Console. Si necesita hacer una conexión de base de datos nueva o modificar o eliminar una conexión de base de datos existente, haga clic en Administrar.

Si va a agregar o modificar una conexión de base de datos, complete los siguientes campos:
Nombre de conexión
Ingrese un nombre para la conexión. El nombre puede ser cualquiera que elija.
Controlador de base de datos
Seleccione el tipo de base de datos correspondiente.
Opciones de conexión
Especifique el host, el puerto, la instancia, el nombre de usuario y la contraseña que se utilizarán para conectarse con la base de datos.

Instrucciones SQL

Ingrese las instrucciones SQL que desea ejecutar para cada uno de los registros en el flujo de datos. A medida que escriba, se abrirá una ventana emergente con los SQL Commands válidos. Separe varias instrucciones SQL con un punto y coma (;).

Para especificar un valor desde un campo del flujo de datos, use esta sintaxis:

${<field name>}

Donde <field name> es el nombre de un campo en el flujo de datos.

Por ejemplo:

UPDATE MyDatabase.dbo.customer
SET name=${Name}
WHERE id=${ID};

En este ejemplo, ${Name} se reemplazará con el valor del campo Nombre del flujo de datos y ${ID} se reemplazará con el valor del campo ID del flujo de datos.

Nota: Las consultas deben usar el nombre cualificado completo. Por ejemplo, MyDatabase.dbo.customer.

Procesamiento de la transacción

Especifica si se van a procesar los registros en los lotes o si se van a procesar todos los registros al mismo tiempo. Una de las siguientes:

Tamaño de lote
Agrupa los registros en lotes del tamaño que especifique y procesa un lote a la vez.
Ejecución total
Crea un gran lote para todos los registros y procesa todas las transacciones al mismo tiempo.

Procesamiento de error

Especifica lo que se va a hacer si se encuentra un error al ejecutar los SQL Commands. Una de las siguientes:

No terminar el flujo de datos en caso de error
El flujo continúa ejecutándose si la base de datos arroja un error al ejecutar los SQL commands.
Terminar el flujo de datos después de encontrar esta cantidad de errores
El flujo de datos detendrá la ejecución después de que la base de datos arroje el número especificado de errores.
Nota: Si hay un error de sintaxis en SQL, el flujo de datos se terminará siempre, independientemente de la configuración que seleccione aquí.

Además, si lo desea, puede escribir registros de error a un receptor al conectar el puerto de error SQL Command al tipo de receptor que desea. El puerto de error es el triángulo blanco en el lado derecho del icono de la etapa en el flujo de datos. Por ejemplo, para escribir registros de error a un archivo plano, tendría que conectar el puerto de error SQL Command a una etapa Write to File, como se muestra aquí:

Antes/después de SQL

La ficha Pre/Post SQL es donde especifica las instrucciones SQL que desea ejecutar una vez por flujo de datos, en lugar de una vez por registro como es el caso con el SQL que especifica en la ficha General. La siguiente tabla describe las opciones disponibles en la pestaña Pre/Post SQL.

Opción Descripción

Antes de SQL

Escriba una o más instrucciones SQL que desee ejecutar antes de que los registros que llegan a la etapa se procesen. Las instrucciones SQL que se introduce aquí se ejecutan una vez ejecución, después de que comienza a ejecutarse el flujo de datos, pero antes de que la etapa SQL Command procese los primeros registros.

Un ejemplo de uso de Antes de SQL sería crear una tabla para los registros que se procesarán.

Autoconfirmar antes de SQL

Marque esta casilla para confirmar las instrucciones Antes de SQL antes de ejecutar las instrucciones SQL en la pestaña General.

Si no marca esta casilla, las instrucciones Antes de SQL se confirmarán en la misma transacción que las instrucciones SQL en la pestaña General.

Nota: Si no marca las casillas Autoconfirmar antes de SQL ni Autoconfirmar después de SQL, entonces todas las instrucciones SQL para la etapa se confirman en una sola transacción.
Después de SQL

Escriba una o más instrucciones SQL que desee ejecutar después de que todos los registros se procesen. Las instrucciones SQL que introduce aquí se ejecutan una vez por ejecución después de que la etapa SQL Command haya terminado, pero antes de que termine el flujo de datos.

Un ejemplo del uso Antes de SQL sería crear un índice después de procesar los registros.

Autoconfirmar después de SQL

Marque esta casilla para confirmar las instrucciones Después de SQL en su propia transacción después de que se confirmen los SQL commands en la ficha General.

Si no marca esta casilla, las instrucciones Después de SQL se confirmarán en la misma transacción que las instrucciones SQL en la pestaña General.

Nota: Si no marca las casillas Autoconfirmar antes de SQL ni Autoconfirmar después de SQL, entonces todas las instrucciones SQL para la etapa se confirman en una sola transacción.

Ficha Tiempo de ejecución

La ficha Tiempo de ejecución muestra las Opciones de etapa y le brinda la flexibilidad de definir los valores predeterminados para las opciones de etapa.

Nombre de campo

Descripción

Opciones de etapa
En esta sección, se enumeran las opciones de flujo de datos que se utilizan en la consulta SQL de esta etapa, y le permite brindar un valor predeterminado para todas estas opciones. En la columna Nombre, se enumeran las opciones, y en la columna Valor correspondiente puede ingresar los valores predeterminados.
Nota: El valor predeterminado que se brinda aquí también se muestra en la sección Opciones de flujo de datos de mapa para las etapas del cuadro de diálogo Opciones de flujo de datos. El cuadro de diálogo también le permite cambiar el valor predeterminado. En caso de conflicto entre los valores predeterminados que se proporcionan a través de Opciones de etapa, Opciones de flujo de datos y Ejecutor de trabajos, el orden de prioridad es: el valor que se proporciona a través de Ejecutor de trabajos > el valor que se define a través del cuadro de diálogo Opciones de flujo de datos > el valor que se ingresa a través de Opciones de etapa.