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
- Cette instruction est un alias de la commande EXECUTE.
Exemples
L'exemple suivant permet d'afficher les sessions et les connexions actives sur le serveur de base de données SQL Server :
- 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 :
- EXEC [mabasededonnes].[dbo].[MaProcedure] @Param1='Action',@Param2='Commande';
Dernière mise à jour : Vendredi, le 15 novembre 2019