web-dev-qa-db-fra.com

Comment créer une étape dans mon travail d'agent SQL Server qui exécutera mon package SSIS?

J'essaie de créer un travail automatisé pour que l'agent SQL Server s'exécute. Le travail est censé exécuter mon package SSIS.

Voici ce que j'ai jusqu'à présent:

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"'

Malheureusement, lorsque je lance ceci, j'obtiens une erreur disant

Syntaxe incorrecte près de '/'

Je soupçonne qu'il se plaint du /FILE dans ma commande.

Je ne trouve nulle part de documentation sur la syntaxe appropriée à utiliser dans @command - j'ai tiré /FILE sur un ancien code que j'ai trouvé quelque part. Quelle est la syntaxe correcte pour exécuter un package SSIS dans un travail?

26
Slider345

J'ai exécuté le script SQL dans la question mais je n'ai rencontré aucune erreur. Donc, je ne sais pas ce qui cause l'erreur dans votre cas. Cependant, si vous avez accès à SQL Server Agent via SQL Server Management Studio. Voici les étapes pour créer un travail à l'aide de l'interface utilisateur graphique.

  1. Accédez à SQL Server Management Studio. Développer SQL Server Agent et faites un clic droit sur Jobs, puis sélectionnez New Job... comme illustré dans la capture d'écran # 1.

  2. Fournissez un nom et le propriétaire par défaut sera le compte qui crée le travail, mais vous pouvez le modifier selon vos besoins. Attribuez une catégorie si vous le souhaitez et fournissez également une description. Reportez-vous à la capture d'écran # 2.

  3. Dans la section Étapes, cliquez sur New... comme illustré dans la capture d'écran # .

  4. Dans la boîte de dialogue Nouvelle étape de travail, indiquez un nom d'étape. Sélectionnez SQL Server Inegration Services Package de Type. Cette étape se déroulera sous SQL Agent Service Account par défaut. Sélectionnez la source du package comme File system et accédez au chemin du package en cliquant sur Ellipsis. Cela remplira le chemin du package. Reportez-vous à la capture d'écran # 4. Si vous ne souhaitez pas que l'étape s'exécute sous SQL Agent Service Account, puis reportez-vous aux étapes # 8 - 9 pour savoir comment utiliser un autre compte.

  5. Si vous avez un fichier de configuration SSIS (.dtsConfig) pour le package, cliquez sur l'onglet Configurations et ajoutez le fichier de configuration comme indiqué dans la capture d'écran # 5.

  6. Cliquez sur OK et il y a le package à l'étape 1 comme indiqué dans la capture d'écran # 6. De même, vous pouvez créer différentes étapes.

  7. Une fois le travail créé, vous pouvez cliquer avec le bouton droit sur le travail et sélectionner Script Job as --> CREATE To --> New Query Editor Window pour générer le script comme indiqué dans la capture d'écran # 7.

  8. Pour exécuter l'étape SSIS sous un autre compte, dans Management Studio, accédez à Security --> right-click on Cedentials --> select New Credential... comme illustré dans la capture d'écran # 8.

  9. Sur le New Credential boîte de dialogue, indiquez un nom, un compte Windows et un mot de passe sous lesquels vous souhaitez exécuter les étapes SSIS dans les travaux SQL. Reportez-vous à la capture d'écran # 9. Les informations d'identification seront créées comme indiqué dans la capture d'écran # 1.

  10. Ensuite, nous devons créer un proxy. Dans Management Studio, accédez à SQL Server Agent --> Proxies --> right-click on SSIS Package Execution --> select New Proxy... comme illustré dans la capture d'écran # 11.

  11. Dans la fenêtre Nouveau compte proxy, indiquez un nom de proxy, sélectionnez les informations d'identification nouvellement créées, fournissez une description et sélectionnez Package SQL Server Integration Services, comme indiqué dans la capture d'écran # 12. Le compte proxy doit être créé comme indiqué dans la capture d'écran # 1.

  12. Maintenant, si vous revenez à l'étape du travail SQL, vous devriez voir le compte Proxy nouvellement créé dans la liste déroulante Exécuter en tant que. Reportez-vous à la capture d'écran # 14.

J'espère que cela pourra aider.

Capture d'écran # 1:

1

Capture d'écran # 2:

2

Capture d'écran n ° 3:

3

Capture d'écran # 4:

4

Capture d'écran # 5:

5

Capture d'écran # 6:

6

Capture d'écran # 7:

7

Capture d'écran # 8:

8

Capture d'écran # 9:

9

Capture d'écran # 10:

10

Capture d'écran # 11:

11

Capture d'écran # 12:

12

Capture d'écran # 13:

13

Capture d'écran # 14:

14

73
user756519

Si vous construisez le travail en utilisant les procs sp_add ..., je pense que vous devez définir explicitement le sous-système à appeler, 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"'

Cela équivaut à la capture d'écran # 4 de @ Siva 'Type' = 'Package de services d'intégration SQL Server'.

Voir this MSDN article pour la liste complète des sous-systèmes.

[~ # ~] modifier [~ # ~] : 'TSQL' est la valeur par défaut, donc votre configuration actuelle essaie d'exécuter '/ FILE "D :\Installs\Upload.dtsx "'en tant que commande T-SQL.

9
DaveE