Gérer les étapes de travail

Une étape du travail est une action exécutée par le travail sur une base de données ou un serveur. Chaque travail doit posséder au moins une étape de travail. Les étapes de travail peuvent être :

  • des programmes exécutables et des commandes du système d'exploitation ;

  • des instructions Transact-SQL, notamment des procédures stockées ou des procédures stockées étendues ;

  • des scripts PowerShell ;

  • des scripts MicrosoftActiveX ;

  • des tâches de réplication ;

  • des tâches Analysis Services ;

  • des packages Integration Services.

Chaque étape de travail s'exécute dans un contexte de sécurité spécifique. Si l'étape de travail spécifie un proxy, elle s'exécute dans le contexte des informations d'identification du proxy. Dans le cas inverse, l'étape de travail s'exécute dans le contexte du compte du service SQL Server Agent. Seuls les membres du rôle serveur fixe sysadmin sont autorisés à créer des travaux qui ne spécifient pas explicitement de proxy.

Les étapes de travail étant exécutées dans le contexte d'un utilisateur Microsoft Windows spécifique, cet utilisateur doit disposer des autorisations et de la configuration nécessaires à l'exécution de l'étape de travail. Par exemple, si vous créez un travail qui requiert une lettre de lecteur ou un chemin d'accès UNC (Universal Naming Convention), les étapes du travail peuvent être exécutées sous votre compte d'utilisateur Windows pendant que les tâches sont testées. Toutefois, l'utilisateur Windows associé à l'étape de travail doit par ailleurs disposer des autorisations nécessaires, des configurations de lettres de lecteurs appropriées ou des droits d'accès au lecteur requis. Sinon, l'étape de travail échoue. Pour éviter ce problème, vérifiez que le proxy associé à chaque étape de travail dispose des autorisations nécessaires pour la tâche correspondant à l'étape de travail. Pour plus d'informations, consultez Sécurité et protection (moteur de base de données).

Journaux d'étapes de travail

L'Agent SQL Server peut écrire le résultat de certaines étapes de travail dans un fichier du système d'exploitation ou dans la table sysjobstepslogs de la base de données msdb. Les types d'étapes de travail suivants peuvent écrire les résultats sur les deux destinations :

  • des programmes exécutables et des commandes du système d'exploitation ;

  • des instructions Transact-SQL ;

  • des tâches Analysis Services.

Seules les étapes de travail exécutées par des utilisateurs membres du rôle serveur fixe sysadmin peuvent écrire le résultat des étapes de travail dans des fichiers du système d'exploitation. Si les étapes de travail sont exécutées par des utilisateurs membres du rôle de base de données fixe SQLAgentUserRole, SQLAgentReaderRole ou SQLAgentOperatorRole dans la base de données msdb, le résultat de ces étapes de travail peut être écrit uniquement dans la table sysjobstepslogs.

Les journaux d'étapes de travail sont automatiquement supprimés dès lors que les travaux ou les étapes de travail sont supprimés.

[!REMARQUE]

La journalisation des tâches de réplication et des étapes de travail des packages Integration Services est assurée par leur sous-système respectif. Vous ne pouvez pas utiliser l'Agent SQL Server pour configurer la journalisation des étapes de travail pour ces types d'étapes de travail.

Programmes exécutables et commandes du système d'exploitation en tant qu'étapes de travail

Les programmes exécutables et les commandes du système d'exploitation peuvent être utilisés en tant qu'étapes de travail. Ces fichiers peuvent posséder les extension bat, .cmd, .com ou .exe.

Lorsque vous utilisez un programme exécutable ou une commande du système d'exploitation en tant qu'étape de travail, vous devez spécifier :

  • le code de sortie du processus renvoyé en cas de succès de la commande ;

  • la commande à exécuter. S'il s'agit d'exécuter une commande du système d'exploitation, vous spécifiez simplement la commande elle-même. Dans le cas d'un programme externe, il s'agit du nom du programme et des arguments à transmettre au programme, par exemple : C:\Program Files\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe -e -q "sp_who"

    [!REMARQUE]

    Vous devez indiquer le chemin d'accès complet au fichier exécutable si ce dernier ne réside pas dans un répertoire spécifié dans le chemin système ou le chemin d'accès de l'utilisateur sous le nom duquel l'étape de travail est exécutée.

Étapes de travail Transact-SQL

Lorsque vous créez une étape de travail Transact-SQL, vous devez :

  • identifier la base de données dans laquelle le travail va être exécuté ;

  • taper l'instruction Transact-SQL à exécuter. L'instruction peut faire appel à une procédure stockée ou à une procédure stockée étendue.

Vous pouvez éventuellement ouvrir un fichier Transact-SQL existant en tant que commande pour l'étape de travail.

Les étapes de travail Transact-SQL n'utilisent pas les proxies de l'Agent SQL Server. Au lieu de cela, l'étape de travail s'exécute au nom de son propriétaire ou sous le compte du service Agent SQL Server, si le propriétaire de l'étape de travail est membre du rôle serveur fixe sysadmin. Les membres du rôle serveur fixe sysadmin peuvent également préciser que les étapes de travail Transact-SQL s'exécutent sous le contexte d'un autre utilisateur par le biais du paramètre database_user_name de la procédure stockée sp_add_jobstep. Pour plus d'informations, consultez sp_add_jobstep (Transact-SQL).

[!REMARQUE]

Une même étape de travail Transact-SQL peut contenir plusieurs lots. Les étapes de travail Transact-SQL peuvent intégrer des commandes GO incorporées.

Étapes de travail de scripts PowerShell

Lorsque vous créez une étape de travail de script PowerShell, vous devez spécifier l'un des deux éléments suivants comme commande pour l'étape :

  • Le texte d'un script PowerShell.

  • Un fichier de script PowerShell existant à ouvrir.

Le sous-système SQL Server Agent PowerShell ouvre une session PowerShell et charge les composants logiciels enfichables SQL Server PowerShell. Le script PowerShell utilisé comme commande d'étape de travail peut faire référence aux cmdlets et au fournisseur SQL Server PowerShell. Pour plus d'informations sur l'écriture de scripts PowerShell à l'aide des composants logiciels enfichables SQL Server PowerShell, consultez SQL Server PowerShell.

Étapes de travail ActiveX Scripting

Important

L'étape de travail de scripts ActiveX ne sera pas supprimé de l'Agent SQL Server dans une version future de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité.

Lorsque vous créez une étape de travail ActiveX Scripting, vous devez :

  • identifier le langage de script dans lequel l'étape de travail est écrite ;

  • écrire le script ActiveX.

Vous pouvez également ouvrir un fichier de script ActiveX existant en tant que commande pour l'étape du travail. Les commandes de script ActiveX peuvent aussi être compilées en externe (par exemple, à l'aide de Microsoft Visual Basic), puis exécutées en tant que programmes exécutables.

Lorsqu'une commande d'étape de travail est un script ActiveX, vous pouvez utiliser l'objet SQLActiveScriptHost pour imprimer le résultat dans le journal d'historique des étapes de travail ou créer des objets COM. SQLActiveScriptHost est un objet global introduit par le système hôte d'Agent SQL Server dans l'espace de noms de script. L'objet a deux méthodes (Print et CreateObject). L'exemple suivant illustre le fonctionnement du script ActiveX dans Visual Basic Scripting Edition (VBScript).

' VBScript example for ActiveX Scripting job step
' Create a Dmo.Server object. The object connects to the
' server on which the script is running.

Set oServer = CreateObject("SQLDmo.SqlServer")
oServer.LoginSecure = True
oServer.Connect "(local)"
'Disconnect and destroy the server object
oServer.DisConnect
Set oServer = nothing

Étapes de travail de réplication

Lorsque vous créez des publications et des abonnements par le biais de la réplication, des travaux de réplication sont créés par défaut. Le type de travail créé dépend du type de réplication (instantané, transactionnelle ou fusion) et des options utilisées.

Les étapes de travail de réplication activent l'un des agents de réplication suivants :

  • Agent d'instantané (travail Snapshot)

  • Agent de lecture du journal (travail LogReader)

  • Agent de distribution (travail de distribution)

  • Agent de fusion (travail Merge)

  • Agent de lecture de file d'attente (travail QueueReader)

Lorsque la réplication est configurée, vous pouvez spécifier l'un des trois modes d'exécution suivants pour les agents de réplication : en continu après le démarrage de l'Agent SQL Server, à la demande, ou selon un programme. Pour plus d'informations sur les agents de réplication, consultez Présentation des Agents de réplication.

Étapes de travail Analysis Services

L'Agent SQL Server prend en charge deux types distincts d'étapes de travail Analysis Services : les étapes de travail de commande et les étapes de travail de requête.

Étapes de travail de commande Analysis Services

Lorsque vous créez une étape de travail de commande Analysis Services, vous devez :

  • identifier le serveur de bases de données OLAP sur lequel l'étape de travail doit s'exécuter ;

  • taper l'instruction à exécuter. L'instruction doit être une méthode Execute XML pour Analysis Services. L'instruction peut ne pas contenir une enveloppe SOAP complète ou une méthode Discover XML Analysis Services. Notez que, bien que SQL Server Management Studio prenne en charge les enveloppes SOAP (Simple Object Access Protocol) complètes et la méthode Discover, ce n'est pas le cas pour les étapes de travail de l'Agent SQL Server.

Étapes de travail de requête Analysis Services

Lorsque vous créez une étape de travail de requête Analysis Services, vous devez :

  • identifier le serveur de bases de données OLAP sur lequel l'étape de travail doit s'exécuter ;

  • taper l'instruction à exécuter. L'instruction doit être une requête MDX (Multidimensional Expressions).

Pour plus d'informations sur les expressions MDX, consultez Principes de base des requêtes MDX (Analysis Services).

Packages Integration Services

Lorsque vous créez une étape de travail de package Integration Services, vous devez effectuer les étapes suivantes :

  • identifier la source du package ;

  • identifier l'emplacement du package ;

  • identifier les fichiers de configuration, dans la mesure où le package requiert des fichiers de configuration ;

  • identifier les fichiers de commandes, dans la mesure où le package requiert des fichiers de commandes ;

  • identifier la vérification à utiliser pour le package. Par exemple, vous pouvez préciser que le package doit être signé ou posséder un ID de package spécifique ;

  • identifier les sources de données du package ;

  • identifier les fournisseurs d'informations du package ;

  • préciser les variables et les valeurs à définir préalablement à l'exécution du package ;

  • identifier les options d'exécution ;

  • ajouter ou modifier les options de ligne de commande.

Notez que si vous avez déployé le package dans le catalogue SSIS et que vous spécifiez Catalogue SSIS comme source du package, la plupart de ces informations de configuration sont obtenues automatiquement à partir du package. Sous l'onglet Configuration, vous pouvez spécifier l'environnement, les valeurs de paramètres, les valeurs de gestionnaire de connexions, les substitutions de propriété, et si le package s'exécute dans un environnement à 32 bits.

Pour plus d'informations sur la création d'étapes de travail exécutant des packages Integration Services, consultez Travaux de l'Agent SQL Server pour les packages.

Tâches associées

Description

Rubrique

Décrit comment créer une étape de travail avec un programme exécutable.

Créer une étape de travail CmdExec

Décrit comment réinitialiser les autorisations de l'Agent SQL Server.

Configurer un utilisateur de manière à créer et à gérer des travaux de l'Agent SQL Server

Décrit comment créer une étape de travail Transact-SQL.

Créer une étape de travail Transact-SQL

Décrit comment définir les options des étapes de travail Transact-SQL de l'Agent Microsoft SQL Server.

Définir les options d'une étape de travail Transact-SQL

Décrit comment créer une étape de travail de script ActiveX.

Créer une étape de travail de script ActiveX

Décrit comment créer et définir les étapes de travail de l'Agent SQL Server qui exécutent les commandes et requêtes Analysis Services de SQL Server.

Créer une étape de travail Analysis Services

Décrit quelle mesure SQL Server doit exécuter si une défaillance se produit pendant l'exécution d'une tâche.

Définir un flux en cas de réussite ou d'échec de l'étape de travail

Décrit comment afficher les détails d'une étape de travail dans la boîte de dialogue Propriétés de l'étape du travail.

Afficher des informations sur une étape de travail

Décrit comment supprimer un journal d'étapes de travail de l'Agent SQL Server.

Supprimer un journal d'étapes de travail

Voir aussi

Référence

dbo.sysjobstepslogs (Transact-SQL)

sp_add_job (Transact-SQL)

Concepts

Créer des travaux