Modification de scripts SQLCMD dans l'éditeur Transact-SQL
Mise à jour : novembre 2007
Lorsque vous écrivez ou modifiez des scripts dans l'éditeur Transact-SQL (T-SQL), vous pouvez utiliser une combinaison de commandes T-SQL et SQLCMD si vous activez d'abord le mode SQLCMD. Pour plus d'informations, consultez Comment : activer le mode SQLCMD dans l'éditeur Transact-SQL.
Écriture et modification de scripts SQLCMD
Si vous souhaitez inclure des commandes SQLCMD et T-SQL dans le même script, vous devez garantir que le script se conforme aux spécifications suivantes :
Vous devez placer des commandes SQLCMD en tant que première instruction sur une ligne.
Vous ne pouvez pas placer plusieurs commandes SQLCMD sur chaque ligne.
Vous pouvez faire précéder les commandes SQLCMD de commentaires ou d'espace blanc.
Vous pouvez utiliser des caractères de commentaire pour empêcher l'exécution de commandes SQLCMD.
Vous devez utiliser deux traits d'union au début d'une ligne pour former chaque caractère de commentaire sur une seule ligne.
Vous devez placer un signe deux-points avant chaque commande SQLCMD pour la distinguer clairement des commandes T-SQL.
Vous pouvez utiliser des variables d'environnement et des variables qui sont définies dans le cadre d'un script SQLCMD, mais vous ne pouvez pas utiliser de variables SQLCMD intégrées.
Utilisation de la syntaxe SQLCMD
Vous pouvez utiliser les commandes suivantes :
:r NomFichier
Analyse des instructions T-SQL supplémentaires et des commandes SQLCMD à partir du fichier spécifié par NomFichier dans le cache des instructions. NomFichier est lu par rapport au répertoire de démarrage pour Visual Studio. Le fichier est lu et exécuté lorsqu'un terminateur de lot est trouvé. Vous pouvez émettre plusieurs commandes :r. Le fichier peut inclure toute commande SQLCMD, y compris le terminateur de lot qui est défini dans Outils, Options. Vous pouvez utiliser la commande :r dans un script de prédéploiement ou de post-déploiement pour inclure d'autres scripts.:setvar Valeur de variable
Définit des variables de script. Les variables de script ont le format suivant : $ (Variable). Les noms de variables ne respectent pas la casse. Si une variable qui est définie en utilisant :Setvar a le même nom qu'une variable d'environnement, la variable définie avec :setvar est prioritaire. Les noms de variables ne doivent pas contenir d'espaces. Les noms de variables ne peuvent pas se présenter sous la même forme qu'une expression variable, telle que $(var). Si la valeur de chaîne de la variable de script contient des espaces, vous devez mettre la valeur entre guillemets. Si une valeur n'est pas spécifiée pour une variable de script, la variable de script est supprimée.:connect NomServeur[\NomInstance] [-l DélaiAttente] [-U NomUtilisateur [-P MotdePasse]]
Établit la connexion à une instance de Microsoft SQL Server et ferme la connexion actuelle une fois que le nombre de secondes spécifié par DélaiAttente s'est écoulé. Vous pouvez spécifier « -l 0 » pour un délai d'attente infini ou un nombre positif de secondes, tel que « -l 30 ». Si vous ne fournissez aucune option ni variable d'environnement pour NomUtilisateur et MotdePasse, le mode d'authentification Windows est utilisé pour l'ouverture de session.:on error [exit | ignore]
Définit l'action à exécuter lorsqu'une erreur se produit pendant l'exécution d'un script ou d'un lot. Si vous utilisez l'option exit, l'exécution s'arrête avec la valeur d'erreur appropriée. Si vous utilisez l'option ignore, l'éditeur T-SQL ignore l'erreur et continue d'exécuter le lot ou le script. Un message d'erreur est imprimé par défaut.:listvar
Affiche une liste des variables de script qui sont actuellement définies. Seules les variables de script qui étaient définies dans la session actuelle en mode SQLCMD apparaissent.:exit
Arrête le lot actuel sans l'exécuter ni retourner de valeur.:exit()
Exécute le lot, puis s'arrête, sans retourner de valeur.:exit(Requête)
Exécute le lot (y compris Requête), retourne les résultats de la Requête, puis s'arrête.
Exemples
Pour vous connecter à une instance, instance1, de SQL Server, MonServeur, en utilisant la sécurité intégrée, vous incluez la commande suivante :
:connect myserver\instance1.
Pour vous connecter à l'instance par défaut de MonServeur à l'aide de variables de script, vous incluez la commande suivante :
:setvar myusername test
:setvar myservername myserver
:connect $(myservername) $(myusername)
Pour exécuter une requête simple stockée dans le fichier selectFromTable.sql dans C:\Files, vous incluez la commande suivante :
:SETVAR tablevar Suppliers
:r C:\Files\selectFromTable.sql
GO
:SETVAR tablevar Customers
:r C:\Files\selectFromTable.sql
GO
Le fichier selectFromTable.sql contient l'exemple de requête suivant :
SELECT * FROM $(tablevar)
GO
Voir aussi
Tâches
Comment : exécuter une requête
Comment : définir des options pour l'exécution et les résultats de la requête