Gérer les étapes de travail

S’applique à :SQL ServerAzure SQL Managed Instance

Important

Dans Azure SQL Managed Instance, la plupart, mais pas toutes les fonctionnalités SQL Server Agent sont actuellement prises en charge. Pour plus d’informations, consultez Différences T-SQL entre Azure SQL Managed Instance et SQL Server.

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

  • Les instructions Transact-SQL, notamment des procédures stockées et des procédures stockées étendues.

  • Des scripts PowerShell

  • Microsoft Des scripts ActiveX

  • Des tâches de réplication

  • Analysis Services Des tâches

  • Integration Services Des packages

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 de 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

SQL Server Agent 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

  • Instructions Transact-SQL.

  • Analysis Services Des tâches

Seules les étapes de travail exécutées par des utilisateurs membres du rôle de 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.

Notes

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 ;

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

    Notes

    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 SQL Server Agent. 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 de serveur 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).

Notes

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 applets de commande 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 sera supprimée de SQL Server Agent dans une version ultérieure 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

SQL Server Agent 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 XML pour Analysis Services Execute. L’instruction ne doit pas contenir d’enveloppe SOAP complète ou de méthode XML pour Analysis Services Discover. 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 SQL Server Agent.

É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 MDX, consultez Principes de base des instructions MDX (MDX).

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 qui exécutent des packages Integration Services , consultez Travaux de SQL Server Agent pour les packages.

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 SQL Server Agent. 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. View Job Step Information
Décrit comment supprimer un journal d'étapes de travail de l'Agent SQL Server . Supprimer un journal d’étapes de travail

Voir aussi

sysjobstepslogs (Transact-SQL)
Créer des travaux
sp_add_job (Transact-SQL)