¿Cómo puedo crear un paso en mi trabajo de Agente de SQL Server que ejecutará mi paquete SSIS?


Estoy intentando crear un trabajo automatizado para que se ejecute el agente de SQL Server. Se supone que el trabajo debe ejecutar mi paquete SSIS.

Esto es lo que tengo hasta ahora:

EXEC sp_add_job @job_name = 'My Job'
            ,@description = 'My First SSIS Job'
            ,@job_id = @jobid OUTPUT

EXEC sp_add_jobstep @job_id =@jobid
                    ,@step_name = N'Upload Data'
                    ,@step_id = 1
                    ,@command=N'/FILE "D:\Installs\Upload.dtsx"'
EXEC sp_add_jobstep @job_id = @jobid
                    ,@step_name = N'Download Data'
                    ,@step_id = 2
                    ,@command=N'/FILE "D:\Installs\Download.dtsx"'

Desafortunadamente cuando corro esto, obtengo un error diciendo

Sintaxis incorrecta cerca de ' / '

Sospecho que se está quejando de la /FILE en mi comando.

No puedo encontrar documentación sobre la sintaxis apropiada para usar dentro de @comando en cualquier lugar I Saqué /FILE de algún código antiguo I encontrado en alguna parte. ¿Cuál es la sintaxis correcta para ejecutar un paquete SSIS en un trabajo?

Author: marc_s, 2011-07-16

2 answers

Ejecuté el script SQL en la pregunta pero no encontré ningún error. Por lo tanto, no estoy seguro de lo que está causando el error en su caso. Sin embargo, si tiene acceso a SQL Server Agent a través de SQL Server Management Studio. Estos son los pasos para crear un trabajo utilizando la Interfaz gráfica de usuario.

  1. Vaya a SQL Server Management Studio. Expanda SQL Server Agent y haga clic con el botón derecho en Trabajos, luego seleccione New Job... como se muestra en la captura de pantalla #1.

  2. Proporcionar un nombre y Propietario de forma predeterminada será la cuenta que crea el trabajo pero puede cambiarlo de acuerdo a sus requisitos. Asigne una categoría si lo desea y también proporcione una descripción. Ver captura de pantalla #2.

  3. En la sección Pasos, haga clic en New... como se muestra en la captura de pantalla #3.

  4. En el cuadro de diálogo Paso de trabajo nuevo, proporcione un nombre de paso. Seleccione SQL Server Inegration Services Package del tipo. Este paso se ejecutará en SQL Agent Service Account por defecto. Seleccione el origen del paquete como File system y busque el paquete ruta haciendo clic en puntos suspensivos. Esto rellenará la ruta del paquete. Ver captura de pantalla #4. Si no desea que el paso se ejecute bajo el SQL Agent Service Account, a continuación, consulte los pasos #8 - 9 para saber cómo puedes usar una cuenta diferente.

  5. Si tiene un archivo de configuración SSIS (.dtsConfig) para el paquete, haga clic en la pestaña Configurations y agregue el archivo de configuración como se muestra en la captura de pantalla #5.

  6. Hacer clic OK y está el paquete en el paso 1 como se muestra en la captura de pantalla #6. Del mismo modo, puede crear diferentes pasos.

  7. Una vez creado el trabajo, puede hacer clic con el botón derecho en el trabajo y seleccionar Script Job as --> CREATE To --> New Query Editor Window para generar el script como se muestra en la captura de pantalla #7.

  8. Para ejecutar el paso SSIS en una cuenta diferente, en Management Studio, vaya a Security --> right-click on Cedentials --> select New Credential... como se muestra en la captura de pantalla #8.

  9. En el cuadro de diálogo New Credential, proporcione un nombre de credencial, una cuenta de Windows y una contraseña con la que desea ejecutar los pasos de SSIS en los trabajos SQL. Ver captura de pantalla #9. La credencial se creará como se muestra en la captura de pantalla #10.

  10. A continuación, necesitamos crear un proxy. En Management Studio, vaya a SQL Server Agent --> Proxies --> right-click on SSIS Package Execution --> select New Proxy... como se muestra en la captura de pantalla #11.

  11. En la ventana Nueva cuenta de Proxy, proporcione un Proxy nombre, seleccione la credencial recién creada, proporcione una descripción y seleccione SQL Server Integration Services Package como se muestra en la captura de pantalla #12. La cuenta proxy debe crearse como se muestra en la captura de pantalla #13.

  12. Ahora, si vuelve al paso en SQL job, debería ver la cuenta de proxy recién creada en el menú desplegable Ejecutar como. Ver captura de pantalla #14.

Espero que eso ayude.

Captura de pantalla #1:

1

Captura de pantalla #2:

2

Captura de pantalla #3:

3

Captura de pantalla #4:

4

Captura de pantalla #5:

5

Captura de pantalla #6:

6

Captura de pantalla #7:

7

Captura de pantalla #8:

8

Captura de pantalla #9:

9

Captura de pantalla #10:

10

Captura de pantalla #11:

11

Captura de pantalla #12:

12

Captura de pantalla #13:

13

Captura de pantalla #14:

14

 70
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-15 21:42:07

Si está construyendo el trabajo usando el sp_add... procs, creo que necesita establecer explícitamente el subsistema a ser llamado, a la

EXEC sp_add_jobstep @job_id = @jobid,
@step_name = N'Upload Data',
@step_id = 1,
@subsystem = 'DTS',
@command=N'/FILE "D:\Installs\Upload.dtsx"'

Esto es equivalente a la captura de pantalla #4 de @Siva 'Type'='SQL Server Integration Services Package'.

Ver este artículo de MSDN para la lista completa de subsistemas.

EDIT : 'TSQL' es el valor predeterminado, por lo que su configuración actual está tratando de ejecutar ' / FILE "D:\Installs\Upload.dtsx "' como un comando T-SQL.

 9
Author: DaveE,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-15 22:33:35