SQLCMD - utilisez l’utilitairesqlcmd - Use the utility

L’utilitaire sqlcmd est un utilitaire de ligne de commande destiné à l’exécution ad hoc et interactive des instructions et des scripts Transact-SQLTransact-SQL , et à l’automatisation des tâches de script Transact-SQLTransact-SQL .The sqlcmd utility is a command-line utility for ad hoc, interactive execution of Transact-SQLTransact-SQL statements and scripts and for automating Transact-SQLTransact-SQL scripting tasks. Pour utiliser sqlcmd de façon interactive ou pour créer des fichiers de script destinés à être exécutés avec sqlcmd, les utilisateurs doivent connaître Transact-SQLTransact-SQL.To use sqlcmd interactively, or to build script files to be run using sqlcmd, users must understand Transact-SQLTransact-SQL. L'utilitaire sqlcmd est généralement utilisé des façons suivantes :The sqlcmd utility is typically used in the following ways:

  • Les utilisateurs entrent Transact-SQLTransact-SQL instructions de manière similaire à l’utilisation de l’invite de commandes.Users enter Transact-SQLTransact-SQL statements in a manner similar to working at the command prompt. Les résultats s'affichent dans l'invite de commandes.The results are displayed at the command prompt. Pour ouvrir une fenêtre d’invite de commandes, tapez « cmd » dans la zone de recherche de Windows et cliquez sur invite de commandes à ouvrir.To open a Command Prompt window, enter "cmd" in the Windows search box and click Command Prompt to open. À l'invite de commandes, tapez sqlcmd suivi d'une liste des options de votre choix.At the command prompt, type sqlcmd followed by a list of options that you want. Pour obtenir une liste complète des options prises en charge par l’utilitaire sqlcmd, consultez Utilitaire sqlcmd.For a complete list of the options that are supported by sqlcmd, see sqlcmd Utility.

  • Les utilisateurs soumettent un travail sqlcmd soit en spécifiant une instruction Transact-SQLTransact-SQL unique à exécuter, soit en indiquant à l'utilitaire un fichier texte contenant les instructions Transact-SQLTransact-SQL à exécuter.Users submit a sqlcmd job either by specifying a single Transact-SQLTransact-SQL statement to execute, or by pointing the utility to a text file that contains Transact-SQLTransact-SQL statements to execute. La sortie est généralement dirigée vers un fichier texte, mais peut également être affichée à l’invite de commandes.The output is usually directed to a text file, but can also be displayed at the command prompt.

  • Mode SQLCMD dans l'Éditeur de requête SQL Server Management StudioSQL Server Management Studio .SQLCMD mode in SQL Server Management StudioSQL Server Management Studio Query Editor.

  • SMO (SQL Server Management Objects)SQL Server Management Objects (SMO)

  • Travaux CmdExec de SQL Server Agent.SQL Server Agent CmdExec jobs.

Généralement utilisé les options de sqlcmdTypically used sqlcmd options

  • Option de serveur (-S) identifie l’instance de MicrosoftMicrosoft SQL ServerSQL Server auquel sqlcmd se connecte.Server option (-S) identifies the instance of MicrosoftMicrosoft SQL ServerSQL Server to which sqlcmd connects.

  • Options d’authentification (-E, - U, et -P) spécifier les informations d’identification qui sqlcmd utilise pour se connecter à l’instance de SQL ServerSQL Server.Authentication options (-E, -U, and -P) specify the credentials that sqlcmd uses to connect to the instance of SQL ServerSQL Server. Remarque : l’option -E est la valeur par défaut et ne doivent pas être spécifiés.NOTE: The option -E is the default and does not need to be specified.

  • Options d’entrée (-Q, - q, et -i) identifient l’emplacement de l’entrée à sqlcmd.Input options (-Q, -q, and -i) identify the location of the input to sqlcmd.

  • L’option de sortie (-o) spécifie le fichier dans lequel sqlcmd place sa sortie.The output option (-o) specifies the file in which sqlcmd is to put its output.

Se connecter à l’utilitaire sqlcmdConnect to the sqlcmd utility

  • Connexion à une instance par défaut à l'aide de l'authentification Windows pour exécuter de manière interactive des instructions Transact-SQLTransact-SQL :Connecting to a default instance by using Windows Authentication to interactively run Transact-SQLTransact-SQL statements:

    sqlcmd -S <ComputerName>  
    

    REMARQUE : dans l’exemple précédent, -E n’est pas définie, car il s’agit de l’option par défaut et sqlcmd se connecte à l’instance par défaut en utilisant l’authentification Windows.NOTE: In the previous example, -E is not specified because it is the default and sqlcmd connects to the default instance by using Windows Authentication.

  • Connexion à une instance nommée à l'aide de l'authentification Windows pour exécuter de manière interactive des instructions Transact-SQLTransact-SQL :Connecting to a named instance by using Windows Authentication to interactively run Transact-SQLTransact-SQL statements:

    sqlcmd -S <ComputerName>\<InstanceName>  
    

    ouor

    sqlcmd -S .\<InstanceName>  
    
  • Connexion à une instance nommée en utilisant l'authentification Windows et définition des fichiers d'entrée et de sortie :Connecting to a named instance by using Windows Authentication and specifying input and output files:

    sqlcmd -S <ComputerName>\<InstanceName> -i <MyScript.sql> -o <MyOutput.rpt>  
    
  • Connexion à l'instance par défaut sur l'ordinateur local à l'aide de l'authentification Windows, exécution d'une requête et maintien de sqlcmd actif à la fin de la requête :Connecting to the default instance on the local computer by using Windows Authentication, executing a query, and having sqlcmd remain running after the query has finished running:

    sqlcmd -q "SELECT * FROM AdventureWorks2012.Person.Person"  
    
  • Connexion à l'instance par défaut sur l'ordinateur local à l'aide de l'authentification Windows, exécution d'une requête, envoi de la sortie vers un fichier et fin de l'exécution de sqlcmd à la fin de la requête :Connecting to the default instance on the local computer by using Windows Authentication, executing a query, directing the output to a file, and having sqlcmd exit after the query has finished running:

    sqlcmd -Q "SELECT * FROM AdventureWorks2012.Person.Person" -o MyOutput.txt  
    
  • Connexion à une instance nommée à l'aide de l'authentification SQL ServerSQL Server pour exécuter des instructions Transact-SQLTransact-SQL de manière interactive, avec sqlcmd demandant un mot de passe :Connecting to a named instance using SQL ServerSQL Server Authentication to interactively run Transact-SQLTransact-SQL statements, with sqlcmd prompting for a password:

    sqlcmd -U MyLogin -S <ComputerName>\<InstanceName>  
    

    CONSEIL !!!HINT!! Pour obtenir une liste des options prises en charge par l’utilitaire sqlcmd , exécutez sqlcmd -?.To see a list of the options that are supported by the sqlcmd utility run: sqlcmd -?.

Exécuter des instructions Transact-SQL de manière interactive à l’aide de sqlcmdRun Transact-SQL statements interactively by using sqlcmd

Vous pouvez utiliser l'utilitaire sqlcmd interactivement pour exécuter des instructions Transact-SQLTransact-SQL dans une fenêtre d'invite de commandes.You can use the sqlcmd utility interactively to execute Transact-SQLTransact-SQL statements in a Command Prompt window. Pour exécuter interactivement des instructions Transact-SQLTransact-SQL à l’aide de sqlcmd, exécutez l’utilitaire sans utiliser les options -Q, -q, -Zou -i pour spécifier des fichiers ou des requêtes d’entrée.To interactively execute Transact-SQLTransact-SQL statements by using sqlcmd, run the utility without using the -Q, -q, -Z, or -i options to specify any input files or queries. Par exemple :For example:

sqlcmd -S <ComputerName>\<InstanceName>

Lorsque la commande est exécutée sans fichiers ou requêtes d'entrée, sqlcmd se connecte à l'instance spécifiée de SQL ServerSQL Server et affiche ensuite une nouvelle ligne comportant un 1> suivi d'un trait de soulignement clignotant, appelé invite sqlcmd .When the command is executed without input files or queries, sqlcmd connects to the specified instance of SQL ServerSQL Server and then displays a new line with a 1> followed by a blinking underscore that is named the sqlcmd prompt. Le 1 signifie qu'il s'agit de la première ligne d'une instruction Transact-SQLTransact-SQL et l'invite sqlcmd représente le point à partir duquel l'instruction Transact-SQLTransact-SQL commencera lorsque vous la taperez.The 1 signifies that this is the first line of a Transact-SQLTransact-SQL statement, and the sqlcmd prompt is the point at which the Transact-SQLTransact-SQL statement will start when you type it in.

À l'invite sqlcmd , vous pouvez taper à la fois des instructions Transact-SQLTransact-SQL et des commandes sqlcmd , telles que GO et EXIT.At the sqlcmd prompt, you can type both Transact-SQLTransact-SQL statements and sqlcmd commands, such as GO and EXIT. Chaque instruction Transact-SQLTransact-SQL est placée dans une mémoire tampon, appelée cache d'instruction.Each Transact-SQLTransact-SQL statement is put in a buffer called the statement cache. Ces instructions sont envoyées à SQL ServerSQL Server dès lors que vous avez tapé la commande GO et appuyé sur la touche ENTRÉE.These statements are sent to SQL ServerSQL Server after you type the GO command and press ENTER. Pour quitter sqlcmd, tapez EXIT ou QUIT au début d'une nouvelle ligne.To exit sqlcmd, type EXIT or QUIT at the start of a new line.

Pour effacer le cache d'instruction, tapez :RESET.To clear the statement cache, type :RESET. Taper ^C provoque la fin de sqlcmd .Typing ^C causes sqlcmd to exit. ^C peut également être utilisé pour arrêter l'exécution du cache d'instruction après la saisie d'une commande GO .^C can also be used to stop the execution of the statement cache after a GO command has been issued.

Transact-SQLTransact-SQL entrées dans une session interactive peuvent être modifiées en entrant la commande :ED et l'invite sqlcmd . statements that are entered in an interactive session can edited by entering the :ED command and the sqlcmd prompt. L'éditeur s'ouvre et après avoir modifié l'instruction Transact-SQLTransact-SQL et refermé l'éditeur, l'instruction Transact-SQLTransact-SQL révisée s'affiche dans la fenêtre de commandes.The editor will open and, after editing the Transact-SQLTransact-SQL statement and closing the editor, the revised Transact-SQLTransact-SQL statement will appear in the command window. Entrez GO pour exécuter l’instruction Transact-SQLTransact-SQL révisée.Enter GO to run therevised Transact-SQLTransact-SQL statement.

Chaînes entre guillemetsQuoted strings

Les caractères entourés par des guillemets sont utilisés sans autre prétraitement, à l'exception des guillemets insérés au sein d'une chaîne en entrant deux guillemets consécutifs.Characters that are enclosed in quotation marks are used without any additional preprocessing, except that quotations marks can be inserted into a string by entering two consecutive quotation marks. SQL ServerSQL Server traite cette séquence de caractères comme un seul guillemet. treats this character sequence as one quotation mark. (La traduction s'effectue toutefois sur le serveur). Les variables des scripts ne sont pas développées lorsqu'elles apparaissent au sein d'une chaîne.(However, the translation occurs in the server.) Scripting variables will not be expanded when they appear within a string.

Par exemple :For example:

sqlcmd

PRINT "Length: 5"" 7'";

GO

Voici l'ensemble des résultats.Here is the result set.

Length: 5" 7'

Chaînes qui s’étendent sur plusieurs lignesStrings that span multiple lines

sqlcmd prend en charge les scripts comportant des chaînes qui s'étendent sur plusieurs lignes.sqlcmd supports scripts that have strings that span multiple lines. Par exemple, l'instruction SELECT suivante s'étend sur plusieurs lignes mais constitue une seule chaîne exécutée lorsque vous appuyez sur la touche ENTRÉE après avoir tapé GO.For example, the following SELECT statement spans multiple lines but is a single string executed when you press the ENTER key after typing GO.

SELECT First line

FROM Second line

WHERE Third line;

GO

Exemple d’utilisation interactive de sqlcmdInteractive sqlcmd example

Il s'agit d'un exemple de ce que vous voyez lorsque vous exécutez sqlcmd interactivement.This is an example of what you see when you run sqlcmd interactively.

Lorsque vous ouvrez une fenêtre d'invite de commandes, elle ne comporte qu'une seule ligne similaire à la ligne suivante :When you open a Command Prompt window, there is one line similar to:

C:\> _

Cela signifie que le dossier C:\ est le dossier en cours et que si vous spécifiez un nom de fichier, Windows recherchera le fichier dans ce dossier.This means the folder C:\ is the current folder, and if you specify a file name, Windows will look for the file in that folder.

Tapez sqlcmd pour vous connecter à l'instance par défaut de SQL ServerSQL Server située sur l'ordinateur local. Le contenu de la fenêtre d'invite de commandes sera alors :Type sqlcmd to connect to the default instance of SQL ServerSQL Server on the local computer, and the contents of the Command Prompt window will be:

C:\>sqlcmd

1> _

Cela signifie que vous vous êtes connecté à l'instance de SQL ServerSQL Server et que sqlcmd est maintenant prêt à accepter des instructions Transact-SQLTransact-SQL ainsi que des commandes sqlcmd .This means you have connected to the instance of SQL ServerSQL Server and sqlcmd is now ready to accept Transact-SQLTransact-SQL statements and sqlcmd commands. Le trait de soulignement clignotant situé après 1> est l'invite de sqlcmd qui marque l'emplacement où les instructions et les commandes que vous tapez sont affichées.The flashing underscore after the 1> is the sqlcmd prompt that marks the location at which the statements and commands you type will be displayed. À présent, tapez USE AdventureWorks2012 et appuyez sur Entrée, puis tapez GO et appuyez sur Entrée.Now, type USE AdventureWorks2012 and press ENTER, and then type GO and press ENTER. La fenêtre d'invite de commandes affiche les éléments suivants :The contents of the Command Prompt window will be:

sqlcmd

USE AdventureWorks2012;

GO

Voici l'ensemble des résultats.Here is the result set.

Changed database context to 'AdventureWorks2012'.

1> _

Appuyer sur la touche ENTRÉE après avoir tapé USE AdventureWorks2012 correspond à demander à sqlcmd de commencer une nouvelle ligne.Pressing ENTER after entering USE AdventureWorks2012 signaled sqlcmd to start a new line. Le fait d'appuyer sur la touche ENTRÉE après avoir tapé GO, revient à demander à sqlcmd d'envoyer l'instruction USE AdventureWorks2012 à l'instance de SQL ServerSQL Server.Pressing ENTER, after you type GO, signaled sqlcmd to send the USE AdventureWorks2012 statement to the instance of SQL ServerSQL Server. sqlcmd retourne alors un message pour indiquer que l'instruction USE a correctement abouti et affiche une nouvelle invite 1> qui vous signale que vous pouvez entrer une nouvelle instruction ou une nouvelle commande.sqlcmd then returned a message to indicate that the USE statement completed successfully and displayed a new 1> prompt as a signal to enter a new statement or command.

L'exemple suivant affiche le contenu de la fenêtre d'invite de commandes si vous tapez une instruction SELECT , une commande GO pour exécuter SELECTet une commande EXIT pour quitter sqlcmd:The following example shows what the Command Prompt window contains if you type a SELECT statement, a GO to execute the SELECT, and an EXIT to exit sqlcmd:

sqlcmd

USE AdventureWorks2012;

GO

SELECT TOP (3) BusinessEntityID, FirstName, LastName

FROM Person.Person;

GO

Voici l'ensemble des résultats.Here is the result set.

BusinessEntityID FirstName LastName

----------- -------------------------------- -----------

1 Syed Abbas

2 Catherine Abel

3 Kim Abercrombie

(3 rows affected)

1> EXIT

C:\>

Les lignes situées après la ligne 3> GO sont les données de sortie d'une instruction SELECT .The lines after line 3> GO are the output of a SELECT statement. Une fois les données de sortie générées, sqlcmd réinitialise l'invite sqlcmd et affiche 1>.After you generate output, sqlcmd resets the sqlcmd prompt and displays 1>. Après avoir entré EXIT sur la ligne 1>, la fenêtre d'invite de commandes affiche la même ligne que celle qu'elle a affichée lorsque vous avez ouvert l'invite de commandes la première fois.After entering EXIT at line 1>, the Command Prompt window displays the same line it did when you first opened it. Ceci indique que sqlcmd a mis fin à sa session.This indicates that sqlcmd has exited its session. Vous pouvez maintenant fermer la fenêtre d'invite de commandes en tapant une autre commande EXIT .You can now close the Command Prompt window by typing another EXIT command.

Fichiers de script Transact-SQL en cours d’exécution à l’aide de sqlcmdRunning Transact-SQL script files using sqlcmd

Vous pouvez utiliser sqlcmd pour exécuter des fichiers de script de base de données.You can use sqlcmd to execute database script files. Il s'agit de fichiers texte contenant un mélange d'instructions Transact-SQLTransact-SQL , de commandes sqlcmd et de variables de script.Script files are text files that contain a mix of Transact-SQLTransact-SQL statements, sqlcmd commands, and scripting variables. Pour plus d’informations sur la façon de générer un script pour des variables, consultez Utiliser sqlcmd avec des variables de script.For more information about how to script variables, see Use sqlcmd with Scripting Variables. sqlcmd fonctionne avec les instructions, les commandes et les variables de script contenues dans un fichier de script de manière très similaire à son fonctionnement avec des instructions et des commandes entrées de manière interactive.sqlcmd works with the statements, commands, and scripting variables in a script file in a manner similar to how it works with statements and commands that are entered interactively. La principale différence est que sqlcmd lit le fichier d'entrée sans marquer de pause au lieu d'attendre que l'utilisateur entre les instructions, les commandes et les variables de script.The main difference is that sqlcmd reads through the input file without pause instead of waiting for a user to enter the statements, commands, and scripting variables.

Il existe plusieurs manières de créer des fichiers de script de base de données :There are different ways to create database script files:

  • Vous pouvez construire et déboguer de manière interactive un ensemble d'instructions Transact-SQLTransact-SQL dans SQL Server Management StudioSQL Server Management Studio, puis enregistrer le contenu de la fenêtre Requête en tant que fichier de script.You can interactively build and debug a set of Transact-SQLTransact-SQL statements in SQL Server Management StudioSQL Server Management Studio, and then save the contents of the Query window as a script file.

  • Vous pouvez créer un fichier texte contenant des instructions Transact-SQLTransact-SQL à l'aide d'un éditeur de texte tel que le Bloc-notes.You can create a text file that contains Transact-SQLTransact-SQL statements by using a text editor, such as Notepad.

ExemplesExamples

A.A. Exécution d'un script à l'aide de sqlcmdRunning a script by using sqlcmd

Démarrez le Bloc-notes et tapez les instructions Transact-SQLTransact-SQL suivantes :Start Notepad, and type the following Transact-SQLTransact-SQL statements:

USE AdventureWorks2012;

GO

SELECT TOP (3) BusinessEntityID, FirstName, LastName

FROM Person.Person;

GO

Créez un dossier intitulé MyFolder puis enregistrez le script sous le fichier MyScript.sql dans le dossier C:\MyFolder.Create a folder named MyFolder and then save the script as the file MyScript.sql in the folder C:\MyFolder. Entrez les instructions suivantes à l'invite de commandes pour exécuter le script et diriger la sortie dans MyOutput.txt dans MyFolder:Enter the following at the command prompt to run the script and put the output in MyOutput.txt in MyFolder:

sqlcmd -i C:\MyFolder\MyScript.sql -o C:\MyFolder\MyOutput.txt

Lorsque vous affichez le contenu de MyOutput.txt dans le Bloc-notes, vous découvrez son contenu :When you view the contents of MyOutput.txt in Notepad, you will see the following:

Changed database context to 'AdventureWorks2012'.

BusinessEntityID FirstName LastName

---------------- ----------- -----------

1 Syed Abbas

2 Catherine Abel

3 Kim Abercrombie

(3 rows affected)

B.B. Utilisation de sqlcmd avec une connexion d'administration dédiéeUsing sqlcmd with a dedicated administrative connection

Dans l'exemple suivant, sqlcmd permet de se connecter à un serveur ayant un problème de blocage à l'aide de la connexion administrateur dédiée.In the following example, sqlcmd is used to connect to a server that has a blocking problem by using the dedicated administrator connection (DAC).

C:\>sqlcmd -S ServerName -A

1> SELECT blocked FROM sys.dm_exec_requests WHERE blocked <> 0;

2> GO

Voici l'ensemble des résultats.Here is the result set.

spid blocked

------ -------

62 64

(1 rows affected)

Utilisez sqlcmd pour mettre fin au processus de blocage.Use sqlcmd to end the blocking process.

1> KILL 64;

2> GO

C.C. Utilisation de sqlcmd pour exécuter une procédure stockéeUsing sqlcmd to execute a stored procedure

L'exemple suivant montre comment exécuter une procédure stockée à l'aide de sqlcmd.The following example shows how to execute a stored procedure by using sqlcmd. Créez la procédure stockée suivante.Create the following stored procedure.

USE AdventureWorks2012;

IF OBJECT_ID ( ' dbo.ContactEmailAddress, 'P' ) IS NOT NULL

DROP PROCEDURE dbo.ContactEmailAddress;

GO

CREATE PROCEDURE dbo.ContactEmailAddress

(

@FirstName nvarchar(50)

,@LastName nvarchar(50)

)

AS

SET NOCOUNT ON

SELECT EmailAddress

FROM Person.Person

WHERE FirstName = @FirstName

AND LastName = @LastName;

SET NOCOUNT OFF

À l'invite sqlcmd , entrez :At the sqlcmd prompt, enter the following:

C:\sqlcmd

1> :Setvar FirstName Gustavo

1> :Setvar LastName Achong

1> EXEC dbo.ContactEmailAddress $(Gustavo),$(Achong)

2> GO

EmailAddress

-----------------------------

gustavo0@adventure-works.com

D.D. Utilisation de sqlcmd pour la maintenance de base de donnéesUsing sqlcmd for database maintenance

L'exemple suivant montre comment utiliser sqlcmd pour une tâche de maintenance de base de données.The following example shows how to use sqlcmd for a database maintenance task. Créez C:\BackupTemplate.sql à l'aide du code suivant.Create C:\BackupTemplate.sql with the following code.

USE master;

BACKUP DATABASE [$(db)] TO DISK='$(bakfile)';

À l'invite sqlcmd , entrez :At the sqlcmd prompt, enter the following:

C:\ >sqlcmd

1> :connect <server>

Sqlcmd: Successfully connected to server <server>.

1> :setvar db msdb

1> :setvar bakfile c:\msdb.bak

1> :r c:\BackupTemplate.sql

2> GO

Changed database context to 'master'.

Processed 688 pages for database 'msdb', file 'MSDBData' on file 2.

Processed 5 pages for database 'msdb', file 'MSDBLog' on file 2.

BACKUP DATABASE successfully processed 693 pages in 0.725 seconds (7.830 MB/sec)

E.E. Utilisation de sqlcmd pour exécuter du code sur plusieurs instancesUsing sqlcmd to execute code on multiple instances

Le code suivant dans un fichier illustre la connexion d'un script à deux instances.The following code in a file shows a script that connects to two instances. Notez GO avant la connexion à la deuxième instance.Notice the GO before the connection to the second instance.

:CONNECT <server>\,<instance1>

EXEC dbo.SomeProcedure

GO

:CONNECT <server>\,<instance2>

EXEC dbo.SomeProcedure

GO

E.E. Retour d'une sortie XMLReturning XML output

L'exemple suivant montre comment la sortie XML est retournée, sans mise en forme, dans un flux continu.The following example shows how XML output is returned unformatted, in a continuous stream.

C:\>sqlcmd -d AdventureWorks2012

1> :XML ON

1> SELECT TOP 3 FirstName + ' ' + LastName + ', '

2> FROM Person.Person

3> GO

Syed Abbas, Catherine Abel, Kim Abercrombie,

F.F. Utilisation de sqlcmd dans un fichier de script WindowsUsing sqlcmd in a Windows script file

Une commande sqlcmd, telle que sqlcmd -i C:\InputFile.txt -o C:\OutputFile.txt, , peut s'exécuter dans un fichier .bat en même temps que VBScript.A sqlcmdcommand such as sqlcmd -i C:\InputFile.txt -o C:\OutputFile.txt, can be executed in a .bat file together with VBScript. Dans ce cas, n'utilisez pas les options interactives.In this case, do not use interactive options. sqlcmd doit être installé sur l'ordinateur qui exécute le fichier .bat.sqlcmd must be installed on the computer that is executing the .bat file.

Commencez par créer les quatre fichiers suivants :First, create the following four files:

  • C:\badscript.sqlC:\badscript.sql

    SELECT batch_1_this_is_an_error  
    GO  
    SELECT 'batch #2'  
    GO  
    
  • C:\goodscript.sqlC:\goodscript.sql

    SELECT 'batch #1'  
    GO  
    SELECT 'batch #2'  
    GO  
    
  • C:\returnvalue.sqlC:\returnvalue.sql

    :exit(select 100)  
    @echo off  
    C:\windowsscript.bat  
    @echo off  
    
    echo Running badscript.sql  
    sqlcmd -i badscript.sql -b -o out.log  
    if not errorlevel 1 goto next1  
    echo == An error occurred   
    
    :next1  
    
    echo Running goodscript.sql  
    sqlcmd -i goodscript.sql -b -o out.log  
    if not errorlevel 1 goto next2  
    echo == An error occurred   
    
    :next2  
    echo Running returnvalue.sql  
    sqlcmd -i returnvalue.sql -o out.log  
    echo SQLCMD returned %errorlevel% to the command shell  
    
    :exit  
    
  • C:\windowsscript.batC:\windowsscript.bat

    @echo off  
    
    echo Running badscript.sql  
    sqlcmd -i badscript.sql -b -o out.log  
    if not errorlevel 1 goto next1  
    echo == An error occurred   
    
    :next1  
    
    echo Running goodscript.sql  
    sqlcmd -i goodscript.sql -b -o out.log  
    if not errorlevel 1 goto next2  
    echo == An error occurred   
    
    :next2  
    echo Running returnvalue.sql  
    sqlcmd -i returnvalue.sql -o out.log  
    echo SQLCMD returned %errorlevel% to the command shell  
    
    :exit  
    

    Puis, à l'invite de commandes, exécutez C:\windowsscript.bat:Then, at the command prompt, run C:\windowsscript.bat:

    C:\>windowsscript.bat

    Running badscript.sql

    == An error occurred

    Running goodscript.sql

    Running returnvalue.sql

    SQLCMD returned 100 to the command shell

G.G. Utilisation de sqlcmd pour définir le chiffrement sur une base de données SQL Windows AzureUsing sqlcmd to set encryption on Windows Azure SQL Database

Une commande sqlcmdpeut être exécutée sur une connexion aux données Base de données SQLSQL Database pour spécifier le chiffrement et l'approbation de certificat.A sqlcmdcan be executed on a connection to Base de données SQLSQL Database data on to specify encryption and certificate trust. Deux options sqlcmdsont disponibles :</span><span class="sxs-lookup"><span data-stu-id="69c15-226">Two **sqlcmd**options are available:

  • Le commutateur -N est utilisé par le client pour demander une connexion chiffrée.The -N switch is used by the client to request an encrypted connection. Cette option est équivalente à l'option ADO.net ENCRYPT = true.This option is equivalent to the ADO.net option ENCRYPT = true.

  • Le commutateur –C est utilisé par le client pour le configurer de façon à approuver implicitement le certificat de serveur sans pour autant le valider.The –C switch is used by the client to configure it to implicitly the trust server certificate and not validate it. Cette option est équivalente à l'option ADO.net TRUSTSERVERCERTIFICATE = true.This option is equivalent to the ADO.net option TRUSTSERVERCERTIFICATE = true.

    Le service Base de données SQLSQL Database ne prend pas en charge toutes les options SET disponibles sur une instance SQL Server.The Base de données SQLSQL Database service does not support all the SET options available on a SQL Server instance. Les options suivantes provoquent une erreur lorsque l'option SET correspondante est définie sur ON ou OFF:The following options throw an error when the corresponding SET option is set to ON or OFF:

  • SET ANSI_DEFAULTSSET ANSI_DEFAULTS

  • SET ANSI_NULLSSET ANSI_NULLS

  • SET REMOTE_PROC_TRANSACTIONSSET REMOTE_PROC_TRANSACTIONS

  • SET ANSI_NULL_DEFAULTSET ANSI_NULL_DEFAULT

    Les options SET suivantes ne provoquent pas d'exceptions mais ne peuvent pas être utilisées.The following SET options do not throw exceptions but cannot be used. Elles sont déconseillées :They are deprecated:

  • SET CONCAT_NULL_YIELDS_NULLSET CONCAT_NULL_YIELDS_NULL

  • SET ANSI_PADDINGSET ANSI_PADDING

  • SET QUERY_GOVERNOR_COST_LIMITSET QUERY_GOVERNOR_COST_LIMIT

SyntaxeSyntax

Les exemples suivants font référence à des cas où les paramètres du fournisseur Native Client SQL ServerSQL Server incluent : ForceProtocolEncryption = False, Trust Server Certificate = NoThe following examples refer to cases where SQL ServerSQL Server Native Client Provider settings include: ForceProtocolEncryption = False, Trust Server Certificate = No

Connexion à l'aide des informations d'identification Windows et d'une communication chiffrée :Connect using Windows credentials and encrypt communication:

SQLCMD –E –N  

Connexion à l'aide des informations d'identification Windows et d'un certificat de serveur de confiance :Connect using Windows credentials and trust server certificate:

SQLCMD –E –C  

Connexion à l'aide des informations d'identification Windows, d'une communication chiffrée et d'un certificat de serveur de confiance :Connect using Windows credentials, encrypt communication and trust server certificate:

SQLCMD –E –N –C  

Les exemples suivants font référence à des cas où les paramètres du fournisseur Native Client SQL ServerSQL Server incluent : ForceProtocolEncryption = True, TrustServerCertificate = Yes.The following examples refer to cases where SQL ServerSQL Server Native Client Provider settings include: ForceProtocolEncryption = True, TrustServerCertificate = Yes.

Connexion à l'aide des informations d'identification Windows, d'une communication chiffrée et d'un certificat de serveur de confiance :Connect using Windows credentials, encrypt communication and trust server certificate:

SQLCMD –E  

Connexion à l'aide des informations d'identification Windows, d'une communication chiffrée et d'un certificat de serveur de confiance :Connect using Windows credentials, encrypt communication and trust server certificate:

SQLCMD –E –N  

Connexion à l'aide des informations d'identification Windows, d'une communication chiffrée et d'un certificat de serveur de confiance :Connect using Windows credentials, encrypt communication and trust server certificate:

SQLCMD –E –T  

Connexion à l'aide des informations d'identification Windows, d'une communication chiffrée et d'un certificat de serveur de confiance :Connect using Windows credentials, encrypt communication and trust server certificate:

SQLCMD –E –N –C  

Si le fournisseur spécifie ForceProtocolEncryption = True , alors le chiffrement est activé même si Encrypt=No est indiqué dans la chaîne de connexion.If the provider specifies ForceProtocolEncryption = True then encryption is enabled even if Encrypt=No in the connection string.

En savoir plus sur sqlcmdMore about sqlcmd

Utilitaire sqlcmd sqlcmd Utility
Utiliser sqlcmd avec des variables de script Use sqlcmd with Scripting Variables
Modifier des scripts SQLCMD à l'aide de l'Éditeur de requête Edit SQLCMD Scripts with Query Editor
Gérer les étapes de travail Manage Job Steps
Créer une étape de travail CmdExec Create a CmdExec Job Step