APSQL

Les instructions SQLCMD dans SSMS

L'utilitaire en ligne de commande SQLCMD est souvent ignoré par les utilisateurs de SQL Server qui lui préfèrent SQL Server Management Studio (SSMS) et son interface graphique. Pourtant SQLCMD dispose d'instructions qui lui sont propre et qui se révèlent particulièrement intéressante lors de l'exécution de scripts depuis SSMS. Toutes les instructions SQLCMD ne sont pas disponibles depuis SSMS et cet article à pour objectif de lister les instructions SQLCMD qui sont accessibles depuis SSMS.

Tout d'abord depuis SSMS, il faut créer une nouvelle requête puis demander l'activation du mode SQLCMD depuis le menu Requête – Mode SQLCMD. Dès lors toute instruction SQLCMD apparaitra avec un fond grisé, ce qui permet de les distinguer clairement des instructions Transact SQL.

Les instructions disponibles sont alors

:r <nom_fichier>

Très pratique cette instruction permet de demander le chargement d'un script directement depuis un fichier script exécuté depuis SSMS. L'exécution du script interviendra à la fin du script SSMS ou bien lors de l'exécution du séparateur de lots d'instruction GO.

Exemple d'utilisation de l'instruction :r pour charger et exécuter un script externe.

Exempel d'utilisation de :r

:error [ fichier| STDERR | STDOUT]

Permet la redirection des erreurs directement vers un fichier ou bien vers le flux standard de sortie (STDOUT) ou d'erreur (STDERR).

:out [ fichier | STDERR | STDOUT ]

Cette instruction permet de sauvegarder dans un fichier le résultat de l'exécution d'un script transact SQL. Attention toutefois car si le fichier de sortie existe déjà, il est écrasé et seul le résultat concernant le dernier script exécuté reste dans le fichier de résultat.

Exemple d'utilisation de l'instruction :out

Exempel d'utilisation de :out

:connect nomServeur[\nomInstance] [-t timeout] [-U nomConnexion [-P motDePasse] ]

Très pratique cette instruction permet de changer de connexion au cours d'un script et donc d'exécuter des instructions dans un contexte de sécurité différent. Cette instruction ne fonction qu'avec une sécurité SQL Server.

Exemple d'utilisation de l'instruction :connect

Exempel d'utilisation de :connect

:on error [ exit | ignore ]

A l'aide de cette instruction, il est possible de définir le comportement à adopter lorsque qu'une erreur se produit en cours d'exécution.