Section courante

A propos

Section administrative du site

EXEC

Exécute
SQL Server Microsoft SQL Server

Syntaxe

[ EXEC ] { [ @return_status = ] { module_name [ ;number ] | @module_name_var } [ [ @parameter = ] { value | @variable [ OUTPUT ] | [ DEFAULT ] } ] [ ,...n ] [ WITH <execute_option> [ ,...n ] ] } [;] Exécution d'une STORED-PROCEDURE
EXEC ( { @string_variable | [ N ]'tsql_string' } [ + ...n ] ) [ AS { LOGIN | USER } = ' name ' ] [;] Exécution d'une chaîne de caractères
EXEC ( { @string_variable | [ N ] 'command_string [ ? ]' } [ + ...n ] [ { , { value | @variable [ OUTPUT ] } } [ ...n ] ] ) [ AS { LOGIN | USER } = ' name ' ] [ AT linked_server_name ] [;]
<execute_option>::= { RECOMPILE | { RESULT SETS UNDEFINED } | { RESULT SETS NONE } | { RESULT SETS ( <result_sets_definition> [,...n ] ) } }
<result_sets_definition> ::= { ( { column_name data_type [ COLLATE collation_name ] [ NULL | NOT NULL ] } [,...n ] ) | AS OBJECT [ db_name . [ schema_name ] . | schema_name . ] {table_name | view_name | table_valued_function_name } | AS TYPE [ schema_name.]table_type_name | AS FOR XML }
Exécution d'une commande directe sur un serveur lié
[ EXEC ] { [ @return_status = ] { module_name | @module_name_var } [ [ @parameter = ] { value | @variable | [ DEFAULT ] } ] [ ,...n ] [ WITH <execute_option> [ ,...n ] ] }
<execute_option>::= { | { RESULT SETS UNDEFINED } | { RESULT SETS NONE } | { RESULT SETS ( <result_sets_definition> [,...n ] ) } }
Copie en mémoire OLTP, exécuter une fonction définie par l'utilisateur scalaire, compilée de manière native

Paramètres

Nom Description
@return_status Ce paramètre permet d'indiquer une variable entière facultative entreposant l'état de retour d'un module.
module_name Ce paramètre permet d'indiquer un nom complet ou non qualifié de la STORED-PROCEDURE ou de la fonction définie par l'utilisateur à valeur scalaire à appeler. Les noms de modules doivent être conformes aux règles relatives aux identificateurs. Les noms des STORED-PROCEDURE étendues sont toujours sensibles à la casse, quel que soit la classement du serveur.
;number Ce paramètre optionnel permet d'indiquer un entier utilisé pour regrouper des procédures du même nom. Ce paramètre n'est pas utilisé pour les STORED-PROCEDURE étendues.
@module_name_var Ce paramètre permet d'indiquer le nom d'une variable définie localement représentant un nom de module.
@parameter Ce paramètre permet d'indiquer le module_name, tel que défini dans le module. Les noms de paramètres doivent être précédés du symbole «@».
value Ce paramètre permet d'indiquer la valeur du paramètre à transmettre au module ou à la commande directe.
@variable Ce paramètre permet d'indiquer la variable entreposant un paramètre ou un paramètre de retour.
OUTPUT Ce paramètre permet d'indiquer le module ou la chaîne de caractères de commande retournant un paramètre.
DEFAULT Ce paramètre permet de fournir la valeur par défaut du paramètre tel que défini dans le module.
@string_variable Ce paramètre permet d'indiquer le nom d'une variable locale. Le paramètre @string_variable peut être n'importe quel type de données char, varchar, nchar ou nvarchar. Ceux-ci incluent les maximum des types de données.
[N] 'tsql_string' Ce paramètre permet d'indiquer une chaîne de caractères constante. Le paramètre tsql_string peut être n'importe quel type de données nvarchar ou varchar. Si le N est inclus, la chaîne de caractères est interprétée comme un type de données nvarchar.
AS context_specification Ce paramètre permet d'indiquer le contexte dans lequel l'instruction est exécutée.
LOGIN Ce paramètre permet d'indiquer que le contexte à imiter est une connexion. L'étendue de l'emprunt d'identité est le serveur.
USER Ce paramètre permet d'indiquer que le contexte à imiter est un utilisateur de la base de données actuelle.
'name' Ce paramètre permet d'indiquer un nom d'utilisateur ou de connexion valide. Le paramètre name doit être membre du rôle serveur fixe sysadmin ou exister en tant que principal dans sys.database_principals ou sys.server_principals, respectivement.
[N] 'command_string' Ce paramètre permet d'indiquer une chaîne de caractères constante contenant la commande à transmettre au serveur lié. Si le N est inclus, la chaîne de caractères est interprétée comme un type de données nvarchar.
[?] Ce paramètre permet d'indiquer les paramètres pour lesquels des valeurs sont fournies dans le paramètre arg-list des commandes directes utilisées dans une instruction «EXEC ('...', <arg-list>) AT <linkedsrv>».
AT linked_server_name Ce paramètre permet d'indiquer que command_string est exécutée sur linked_server_name et que les résultats, le cas échéant, sont renvoyés au client.
WITH <execute_option> Ce paramètre permet d'indiquer les options d'exécutions possible.

Description

Cette instruction permet d'exécuter une chaîne de caractères de commande dans un traitement par lot d'une transaction SQL.

Remarque

Exemples

L'exemple suivant permet d'afficher les sessions et les connexions actives sur le serveur de base de données SQL Server :

  1. exec sp_who

La commande retournera un résultat variable selon l'état du système et les 2 champs suivants auront la signification suivante : ProgramName pour indiquer l'application associée à la session, LastBatch pour indiquer la dernière activité associée à la session.

L'exemple suivant permet d'exécuter une STORED-PROCEDURE :

  1. EXEC [mabasededonnes].[dbo].[MaProcedure] @Param1='Action',@Param2='Commande'; 


Dernière mise à jour : Vendredi, le 15 novembre 2019