sqlcmd Utilitysqlcmd Utility

S’APPLIQUE À : ouiSQL Server ouiAzure SQL Database ouiAzure SQL Data Warehouse ouiParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Pour SQL Server 2014 et inférieur, consultez utilitaire sqlcmd.For SQL Server 2014 and lower, see sqlcmd Utility.

Pour l’utilisation de sqlcmd sur Linux, consultez installer sqlcmd et bcp sur Linux.For using sqlcmd on Linux, see Install sqlcmd and bcp on Linux.

Le sqlcmd utilitaire vous permet d’entrer des instructions Transact-SQL, des procédures système et des fichiers de script via une variété de modes disponibles :The sqlcmd utility lets you enter Transact-SQL statements, system procedures, and script files through a variety of available modes:

  • À l'invite de commandes.At the command prompt.
  • Dans éditeur de requête en mode SQLCMD.In Query Editor in SQLCMD mode.
  • Dans un fichier de script Windows.In a Windows script file.
  • Dans une étape de travail de système d’exploitation (Cmd.exe) d’un travail de l’Agent SQL Server.In an operating system (Cmd.exe) job step of a SQL Server Agent job.

L’utilitaire utilise ODBC pour exécuter des lots Transact-SQL.The utility uses ODBC to execute Transact-SQL batches.

Téléchargez la dernière version de l’utilitaire sqlcmdDownload the latest version of sqlcmd Utility

télécharger télécharger des utilitaires de ligne de commande Microsoft 15.0.x pour SQL Server (x64) (2,4 Mo)download Download Microsoft Command Line Utilities 15.0.x for SQL Server (x64) (2.4 MB)
télécharger télécharger des utilitaires de ligne de commande Microsoft 15.0.x pour SQL Server (x86) (2,2 Mo)download Download Microsoft Command Line Utilities 15.0.x for SQL Server (x86) (2.2 MB)

Les outils de ligne de commande sont la disponibilité générale (GA), mais ils sont publiés avec le package d’installation Version préliminaire de SQL Server 2019SQL Server 2019 preview.The command line tools are General Availability (GA), however they are being released with the installer package for Version préliminaire de SQL Server 2019SQL Server 2019 preview.

Informations sur la versionVersion Information

Numéro de version : 15.0Release number: 15.0
Numéro de build : 15.0.1000.34Build number: 15.0.1000.34
Date de publication : 18 octobre 2018Release date: October 18, 2018

La nouvelle version de SQLCMD prend en charge l’authentification Azure AD, y compris la prise en charge de l’authentification multifacteur (MFA) pour les fonctionnalités de base de données SQL, SQL Data Warehouse et toujours chiffrés.The new version of SQLCMD supports Azure AD authentication, including Multi-Factor Authentication (MFA) support for SQL Database, SQL Data Warehouse, and Always Encrypted features. Le nouveau BCP prend en charge l’authentification Azure AD, y compris la prise en charge de l’authentification multifacteur (MFA) pour SQL Database et SQL Data Warehouse.The new BCP supports Azure AD authentication, including Multi-Factor Authentication (MFA) support for SQL Database and SQL Data Warehouse.

Configuration système requise Windows 10, Windows 7, Windows 8, Windows 8.1, Windows Server 2008, Windows Server 2008 R2, Windows Server 2008 R2 SP1, Windows Server 2012, Windows Server 2012 R2 ce composant requiert programme d’installation de Windows 4.5 et Microsoft ODBC Driver 17.2 for SQL Server.System Requirements Windows 10 , Windows 7, Windows 8, Windows 8.1, Windows Server 2008, Windows Server 2008 R2, Windows Server 2008 R2 SP1, Windows Server 2012, Windows Server 2012 R2 This component requires both Windows Installer 4.5 and Microsoft ODBC Driver 17.2 for SQL Server.

Pour vérifier la version SQLCMD exécuter sqlcmd -? commande et de confirmer que 15.0.1000.34 version ou version ultérieure est en cours d’utilisation.To check the SQLCMD version execute sqlcmd -? command and confirm that 15.0.1000.34 version or higher is in use.

Note

Vous avez besoin d’une version 13.1 ou supérieure pour prendre en charge Always Encrypted (-g) et l’authentification Azure Active Directory (-G).You need version 13.1 or higher to support Always Encrypted (-g) and Azure Active Directory authentication (-G). (Plusieurs versions de sqlcmd.exe peuvent être installées sur votre ordinateur.(You may have several versions of sqlcmd.exe installed on your computer. Assurez-vous d’utiliser la version correcte.Be sure you are using the correct version. Pour déterminer la version, exécutez sqlcmd -?.)To determine the version, execute sqlcmd -?.)

Vous pouvez essayer de l’utilitaire sqlcmd à partir d’Azure Cloud Shell comme il est préinstallé par défaut : lancer Cloud ShellYou can try the sqlcmd utility from Azure Cloud Shell as it is pre-installed by default: Launch Cloud Shell

Pour exécuter des instructions sqlcmd dans SSMS, sélectionnez le Mode SQLCMD à partir de la liste déroulante du menu Requête.To run sqlcmd statements in SSMS, select SQLCMD Mode from the top navigation Query Menu dropdown.

Important

SQL Server Management StudioSQL Server Management Studio (SSMS) utilise le client Microsoft SQL .NET Framework.NET Framework pour l’exécution en mode régulier et SQLCMD dans l’Éditeur de requête.(SSMS) uses the Microsoft .NET Framework.NET Framework SqlClient for execution in regular and SQLCMD mode in Query Editor. Lorsque sqlcmd est exécuté à partir de la ligne de commande, sqlcmd utilise le pilote ODBC.When sqlcmd is run from the command-line, sqlcmd uses the ODBC driver. Dans la mesure où différentes options par défaut peuvent s’appliquer, vous pouvez constater un comportement différent lorsque vous exécutez la même requête dans SQL Server Management StudioSQL Server Management Studio en mode SQLCMD et dans l’utilitaire sqlcmd .Because different default options may apply, you might see different behavior when you execute the same query in SQL Server Management StudioSQL Server Management Studio in SQLCMD Mode and in the sqlcmd utility.

Actuellement, sqlcmd ne requiert pas d’espace entre l’option de ligne de commande et la valeur.Currently, sqlcmd doesn't require a space between the command-line option and the value. Toutefois, dans une version ultérieure, un espace peut être requis entre l'option de ligne de commande et la valeur.However, in a future release, a space may be required between the command-line option and the value.

Autres rubriques :Other topics:

SyntaxeSyntax

sqlcmd   
   -a packet_size  
   -A (dedicated administrator connection)  
   -b (terminate batch job if there is an error)  
   -c batch_terminator  
   -C (trust the server certificate)  
   -d db_name  
   -e (echo input)  
   -E (use trusted connection)  
   -f codepage | i:codepage[,o:codepage] | o:codepage[,i:codepage] 
   -g (enable column encryption) 
   -G (use Azure Active Directory for authentication)
   -h rows_per_header  
   -H workstation_name  
   -i input_file  
   -I (enable quoted identifiers)  
   -j (Print raw error messages)
   -k[1 | 2] (remove or replace control characters)  
   -K application_intent  
   -l login_timeout  
   -L[c] (list servers, optional clean output)  
   -m error_level  
   -M multisubnet_failover  
   -N (encrypt connection)  
   -o output_file  
   -p[1] (print statistics, optional colon format)  
   -P password  
   -q "cmdline query"  
   -Q "cmdline query" (and exit)  
   -r[0 | 1] (msgs to stderr)  
   -R (use client regional settings)  
   -s col_separator  
   -S [protocol:]server[instance_name][,port]  
   -t query_timeout  
   -u (unicode output file)  
   -U login_id  
   -v var = "value"  
   -V error_severity_level  
   -w column_width  
   -W (remove trailing spaces)  
   -x (disable variable substitution)  
   -X[1] (disable commands, startup script, environment variables, optional exit)  
   -y variable_length_type_display_width  
   -Y fixed_length_type_display_width  
   -z new_password   
   -Z new_password (and exit)  
   -? (usage)  

Options de ligne de commandeCommand-line Options

Options relatives à la connexionLogin-Related Options
-A-A
Se connecte à SQL Server avec une connexion administrateur dédiée (DAC, Dedicated Administrator Connection).Signs in to SQL Server with a Dedicated Administrator Connection (DAC). Ce type de connexion est utilisé pour dépanner un serveur.This kind of connection is used to troubleshoot a server. Cette connexion fonctionne uniquement avec les serveurs qui prennent en charge les DAC.This connection works only with server computers that support DAC. Si DAC n’est pas disponible, sqlcmd génère un message d’erreur et se termine.If DAC is not available, sqlcmd generates an error message, and then exits. Pour plus d’informations sur DAC, consultez Connexion de diagnostic pour les administrateurs de base de données.For more information about DAC, see Diagnostic Connection for Database Administrators. L’option-a n’est pas pris en charge avec l’option -G.The -A option isn't supported with the -G option. Lors de la connexion à la base de données SQL à l’aide de - A, vous devez être un administrateur SQL server.When connecting to SQL Database using -A, you must be a SQL server administrator. DAC n’est pas disponible pour un administrateur Azure Active Directory.DAC isn't available for an Azure Active Directory administrator.

-C-C
Ce commutateur est utilisé par le client pour le configurer afin d'approuver implicitement le certificat de serveur sans validation.This switch is used by the client to configure it to implicitly trust the server certificate without validation. Cette option est équivalente à l'option ADO.NET TRUSTSERVERCERTIFICATE = true.This option is equivalent to the ADO.NET option TRUSTSERVERCERTIFICATE = true.

-d nom_base_de_données-d db_name
Émet une instruction USE nom_base_de_données quand vous démarrez sqlcmd.Issues a USE db_name statement when you start sqlcmd. Cette option définit la variable de script sqlcmd SQLCMDDBNAME.This option sets the sqlcmd scripting variable SQLCMDDBNAME. Ce paramètre spécifie la base de données initiale.This parameter specifies the initial database. La valeur par défaut est la propriété de base de données par défaut de votre connexion.The default is your login's default-database property. Si la base de données n’existe pas, un message d’erreur est généré et sqlcmd se termine.If the database does not exist, an error message is generated and sqlcmd exits.

-l délai_d’attente_connexion-l login_timeout
Spécifie le nombre de secondes au terme duquel une connexion sqlcmd au pilote ODBC expire quand vous tentez d’établir une connexion à un serveur.Specifies the number of seconds before a sqlcmd login to the ODBC driver times out when you try to connect to a server. Cette option définit la variable de script sqlcmd SQLCMDLOGINTIMEOUT.This option sets the sqlcmd scripting variable SQLCMDLOGINTIMEOUT. Le délai d’attente par défaut pour la connexion à sqlcmd est de huit secondes.The default time-out for login to sqlcmd is eight seconds. Quand vous utilisez l’option -G pour vous connecter à SQL Database ou à SQL Data Warehouse et vous authentifier à l’aide d’Azure Active Directory, il est recommandé d’indiquer un délai d’attente d’au moins 30 secondes.When using the -G option to connect to SQL Database or SQL Data Warehouse and authenticate using Azure Active Directory, a timeout value of at least 30 seconds is recommended. Le délai d'attente de la connexion doit être un nombre compris entre 0 et 65534.The login time-out must be a number between 0 and 65534. Si la valeur fournie n’est pas numérique ou n’est pas comprise dans cette plage, sqlcmd génère un message d’erreur.If the value supplied is not numeric or does not fall into that range, sqlcmd generates an error message. Une valeur de 0 spécifie un délai d'attente infini.A value of 0 specifies time-out to be infinite.

-E-E
Utilise une connexion approuvée au lieu d’un nom d’utilisateur et d’un mot de passe pour se connecter à SQL Server.Uses a trusted connection instead of using a user name and password to sign in to SQL Server. Par défaut, si -E n’est pas spécifié, sqlcmd utilise l’option de connexion approuvée.By default, without -E specified, sqlcmd uses the trusted connection option.

L’option -E ignore les éventuels paramètres de variables d’environnement de nom d’utilisateur et de mot de passe, tels que SQLCMDPASSWORD.The -E option ignores possible user name and password environment variable settings such as SQLCMDPASSWORD. Si l’option -E est utilisée avec l’option -U ou -P , un message d’erreur est généré.If the -E option is used together with the -U option or the -P option, an error message is generated.

-g-g
Définissez le paramètre de chiffrement de colonne sur Enabled.Sets the Column Encryption Setting to Enabled. Pour plus d’informations, consultez Always Encrypted.For more information, see Always Encrypted. Uniquement les clés principales stockées dans le magasin de certificats Windows sont prises en charge.Only master keys stored in Windows Certificate Store are supported. Le commutateur -g nécessite au moins sqlcmd version 13.1.The -g switch requires at least sqlcmd version 13.1. Pour déterminer votre version, exécutez sqlcmd -?.To determine your version, execute sqlcmd -?.

-G-G
Ce commutateur est utilisé par le client durant la connexion à SQL Database ou à SQL Data Warehouse pour indiquer que l’utilisateur soit authentifié à l’aide de l’authentification Azure Active Directory.This switch is used by the client when connecting to SQL Database or SQL Data Warehouse to specify that the user be authenticated using Azure Active Directory authentication. Cette option définit la variable de script sqlcmd SQLCMDUSEAAD = true.This option sets the sqlcmd scripting variable SQLCMDUSEAAD = true. Le commutateur -G nécessite au moins sqlcmd version 13.1.The -G switch requires at least sqlcmd version 13.1. Pour déterminer votre version, exécutez sqlcmd -?.To determine your version, execute sqlcmd -?. Pour plus d’informations, voir Connexion à la base de données SQL à l’aide de l’authentification Azure Active Directory.For more information, see Connecting to SQL Database or SQL Data Warehouse By Using Azure Active Directory Authentication. L’option-a n’est pas pris en charge avec l’option -G.The -A option is not supported with the -G option.

Important

L’option -G s’applique uniquement à Azure SQL Database et à Azure Data Warehouse.The -G option only applies to Azure SQL Database and Azure Data Warehouse. AAD intégrée et l’authentification Interactive n'est pas actuellement pris en charge Linux ou macOS.AAD Integrated and Interactive Authentication is not currently supported on Linux or macOS.

  • Nom d’utilisateur et mot de passe Azure Active Directory :Azure Active Directory Username and Password:

    Lorsque vous souhaitez utiliser un nom d’utilisateur Azure Active Directory et le mot de passe, vous pouvez fournir l’option - G et utiliser également le nom d’utilisateur et le mot de passe en fournissant les options -U et -P .When you want to use an Azure Active Directory user name and password, you can provide the -G option and also use the user name and password by providing the -U and -P options.

    Sqlcmd -S testsrv.database.windows.net -d Target_DB_or_DW -U bob@contoso.com -P MyAADPassword -G 
    

    Le paramètre -G génère la chaîne de connexion suivante sur le serveur principal :The -G parameter generates the following connection string in the backend:

     SERVER = Target_DB_or_DW.testsrv.database.windows.net;UID= bob@contoso.com;PWD=MyAADPassword;AUTHENTICATION = ActiveDirectoryPassword 
    
  • Intégrée à Azure Active DirectoryAzure Active Directory Integrated

    Pour l’authentification intégrée à Azure Active Directory, spécifiez l’option -G sans nom d’utilisateur ni mot de passe.For Azure Active Directory Integrated authentication, provide the -G option without a user name or password. L’authentification intégrée de AAD n’est pas actuellement pris en charge sur Linux ou macOS.AAD Integrated Authentication is not currently supported on Linux or macOS.

    Sqlcmd -S Target_DB_or_DW.testsrv.database.windows.net -G
    

    La chaîne de connexion suivante est générée dans le service principal :This will generate the following connection string in the backend:

    SERVER = Target_DB_or_DW.testsrv.database.windows.net Authentication = ActiveDirectoryIntegrated; Trusted_Connection=NO
    

    Note

    L’option -E (Trusted_Connection) ne peut pas être utilisée avec l’option -G.The -E option (Trusted_Connection) cannot be used along with the -G option.

  • Azure Active Directory InteractiveAzure Active Directory Interactive

    L’authentification Interactive d’Azure AD pour Azure SQL Database et SQL Data Warehouse, vous permet d’utiliser une méthode interactive prenant en charge l’authentification multifacteur.The Azure AD Interactive authentication for Azure SQL Database and SQL Data Warehouse, allows you to use an interactive method supporting multi-factor authentication. Pour plus d’informations, consultez authentification Interactive Active Directory.For more information, see Active Directory Interactive Authentication.

    Azure AD interactif nécessite sqlcmd version 15.0.1000.34 ou version ultérieure ainsi que ODBC version 17.2 ou ultérieure.Azure AD interactive requires sqlcmd version 15.0.1000.34 or later as well as ODBC version 17.2 or later.

    Pour activer l’authentification interactive, fournissez l’option -G avec le nom d’utilisateur (-U) uniquement, sans mot de passe.To enable interactive authentication, provide -G option with user name (-U) only, without a password.

    L’exemple suivant exporte les données à l’aide de mode interactif Azure AD indiquant le nom d’utilisateur où utilisateur représente un compte AAD.The following example exports data using Azure AD interactive mode indicating username where user represents an AAD account. Il s’agit du même exemple que celui utilisé dans la section précédente : Azure Active Directory Username et Password.This is the same example used in the previous section: Azure Active Directory Username and Password.

    Mode interactif nécessite un mot de passe doit être entré manuellement, ou pour des comptes avec l’authentification multifacteur est activée, terminer votre méthode d’authentification Multifacteur configurée.Interactive mode requires a password to be manually entered, or for accounts with multi-factor authentication enabled, complete your configured MFA authentication method.

    sqlcmd -S testsrv.database.windows.net -d Target_DB_or_DW -G -U alice@aadtest.onmicrosoft.com
    

    La commande précédente génère la chaîne de connexion suivante sur le serveur principal :The previous command generates the following connection string in the backend:

    SERVER = Target_DB_or_DW.testsrv.database.windows.net;UID=alice@aadtest.onmicrosoft.com; AUTHENTICATION = ActiveDirectoryInteractive   
    

    Au cas où un utilisateur Azure AD est un utilisateur de domaine fédéré à l’aide d’un compte Windows, le nom d’utilisateur requis dans la ligne de commande, contient son compte de domaine (par exemple, joe@contoso.com voir ci-dessous) :In case an Azure AD user is a domain federated user using a Windows account, the user name required in the command-line, contains its domain account (for example, joe@contoso.com see below):

    sqlcmd -S testsrv.database.windows.net -d Target_DB_or_DW -G -U joe@contoso.com  
    

    Si les utilisateurs invités dans un annuaire Azure AD spécifique et font partie d’un groupe qui existe dans la base de données SQL qui dispose des autorisations de base de données pour exécuter la commande sqlcmd, leurs alias de l’utilisateur invité est utilisé (par exemple, keith0@adventureworks.com).If guest users exist in a specific Azure AD and are part of a group that exists in SQL DB that has database permissions to execute the sqlcmd command, their guest user alias is used (for example, keith0@adventureworks.com).

    Important

    Il existe un problème connu lorsque vous utilisez le -G et -U option avec SQLCMD, où placer le -U option avant la -G option peut entraîner l’échec de l’authentification.There is a known issue when using the -G and -U option with SQLCMD, where putting the -U option before the -G option may cause authentication to fail. Toujours commencer par le -G option suivie par la -U option.Always start with the -G option followed by the -U option.

-H workstation_name-H workstation_name
Nom d'une station de travail.A workstation name. Cette option définit la variable de script sqlcmd SQLCMDWORKSTATION.This option sets the sqlcmd scripting variable SQLCMDWORKSTATION. Le nom de la station de travail est indiqué dans la colonne hostname de la vue catalogue sys.sysprocesses et peut être retourné à l’aide de la procédure stockée sp_who.The workstation name is listed in the hostname column of the sys.sysprocesses catalog view and can be returned using the stored procedure sp_who. Si cette option n'est pas spécifiée, le nom de l'ordinateur actif est utilisé par défaut.If this option is not specified, the default is the current computer name. Ce nom peut être utilisé pour identifier différentes sessions sqlcmd .This name can be used to identify different sqlcmd sessions.

j - imprime des messages d’erreur bruts à l’écran.-j Prints raw error messages to the screen.

-K application_intent-K application_intent
Déclare le type de la charge de travail de l'application lors de la connexion à un serveur.Declares the application workload type when connecting to a server. La seule valeur actuellement prise en charge est ReadOnly.The only currently supported value is ReadOnly. Si -K n’est pas spécifié, l’utilitaire sqlcmd ne prend pas en charge la connectivité sur un réplica secondaire dans un groupe de disponibilité AlwaysOn.If -K is not specified, the sqlcmd utility will not support connectivity to a secondary replica in an Always On availability group. Pour plus d’informations, consultez Secondaires actifs : réplicas secondaires lisibles (groupes de disponibilité Always On).For more information, see Active Secondaries: Readable Secondary Replica (Always On Availability Groups)

-M multisubnet_failover-M multisubnet_failover
Spécifiez toujours -M en cas de connexion à l’écouteur de groupe de disponibilité d’un groupe de disponibilité SQL Server ou d’une instance de cluster de basculement SQL Server.Always specify -M when connecting to the availability group listener of a SQL Server availability group or a SQL Server Failover Cluster Instance. -M accélère la détection et la connexion au serveur (actuellement) actif.-M provides for faster detection of and connection to the (currently) active server. Si vous ne spécifiez pas l’option -M , -M est désactivé.If -M is not specified, -M is off. Pour plus d’informations sur Écouteurs, connectivité client et basculement d’application, Création et configuration des groupes de disponibilité (SQL Server), Clustering de basculement et groupes de disponibilité AlwaysOn (SQL Server), et Secondaires actifs : réplicas secondaires lisibles (groupes de disponibilité AlwaysOn).For more information about Listeners, Client Connectivity, Application Failover, Creation and Configuration of Availability Groups (SQL Server), Failover Clustering and Always On Availability Groups (SQL Server), and Active Secondaries: Readable Secondary Replicas(Always On Availability Groups).

-N-N
Ce commutateur est utilisé par le client pour demander une connexion chiffrée.This switch is used by the client to request an encrypted connection.

-P password-P password
Spécifie le mot de passe pour l'utilisateur.Is a user-specified password. Les mots de passe respectent la casse.Passwords are case-sensitive. Si l’option -U est utilisée sans l’option -P et que la variable d’environnement SQLCMDPASSWORD n’a pas été définie, sqlcmd demande à l’utilisateur d’entrer un mot de passe.If the -U option is used and the -P option is not used, and the SQLCMDPASSWORD environment variable has not been set, sqlcmd prompts the user for a password. Nous ne recommandons pas l’utilisation du mot de passe null, mais vous pouvez spécifier le mot de passe null à l’aide d’une paire de guillemets doubles contigus pour la valeur du paramètre :We do not recommend the use of the null password, but you can specify the null password by using a pair of contiguous double-quotation marks for the parameter value:

  • -P ""-P ""

Nous vous recommandons d’utiliser un mot de passe fort.We recommend that you use a strong password.

Utilisez un mot de passe fort !Use a strong password!

L’invite de mot de passe s’affiche en imprimant l’invite de commande sur la console, comme suit : Password:The password prompt is displayed by printing the password prompt to the console, as follows: Password:

L'entrée de l'utilisateur est masquée,User input is hidden. ce qui signifie que rien ne s'affiche et que le curseur reste immobile.This means that nothing is displayed and the cursor stays in position.

La variable d'environnement SQLCMDPASSWORD vous permet de définir un mot de passe par défaut pour la session en cours.The SQLCMDPASSWORD environment variable lets you set a default password for the current session. Par conséquent, les mots de passe n'ont pas besoin d'être codés en dur dans des fichiers de commandes.Therefore, passwords do not have to be hard-coded into batch files.

L’exemple suivant définit la variable SQLCMDPASSWORD au niveau de l’invite de commandes et accède ensuite à l’utilitaire sqlcmd .The following example first sets the SQLCMDPASSWORD variable at the command prompt and then accesses the sqlcmd utility. À l'invite de commandes, tapez :At the command prompt, type:

SET SQLCMDPASSWORD= p@a$$w0rd
À l'invite de commandes suivante, tapez :At the following command prompt, type:

sqlcmd

Si la combinaison de nom d'utilisateur et de mot de passe est incorrecte, un message d'erreur est généré.If the user name and password combination is incorrect, an error message is generated.

REMARQUENOTE! La variable d’environnement OSQLPASSWORD a été conservée pour garantir une compatibilité descendante.The OSQLPASSWORD environment variable was kept for backward compatibility. La variable d’environnement SQLCMDPASSWORD est prioritaire sur la variable d’environnement OSQLPASSWORD.The SQLCMDPASSWORD environment variable takes precedence over the OSQLPASSWORD environment variable. Maintenant que OSQLPASSWORD n’est plus partagé, les utilitaires sqlcmd et osql peut être utilisé en regard de l’autre sans interférence.Now that OSQLPASSWORD is no longer shared, the utilities sqlcmd and osql can be used next to each other without interference. Anciens scripts continuent à fonctionner.Old scripts will continue to work.

Si l’option -P est utilisée avec l’option -E , un message d’erreur est généré.If the -P option is used with the -E option, an error message is generated.

Si l’option -P est suivie de plusieurs arguments, un message d’erreur est généré et le programme se termine.If the -P option is followed by more than one argument, an error message is generated and the program exits.

S - [protocole:]server[\instance_nom] [, port]-S [protocol:]server[\instance_name][,port]
Spécifie l’instance de SQL Server à laquelle se connecter.Specifies the instance of SQL Server to which to connect. Cette option définit la variable de script sqlcmd SQLCMDSERVER.It sets the sqlcmd scripting variable SQLCMDSERVER.

Spécifiez server_name pour vous connecter à l’instance par défaut de SQL Server sur cet ordinateur serveur.Specify server_name to connect to the default instance of SQL Server on that server computer. Spécifiez server_name [ \instance_name ] pour vous connecter à une instance nommée de SQL Server sur cet ordinateur serveur.Specify server_name [ \instance_name ] to connect to a named instance of SQL Server on that server computer. Si aucun ordinateur serveur n’est spécifié, sqlcmd se connecte à l’instance par défaut de SQL Server sur l’ordinateur local.If no server computer is specified, sqlcmd connects to the default instance of SQL Server on the local computer. Cette option est indispensable lorsque vous exécutez sqlcmd à partir d’un ordinateur distant connecté au réseau.This option is required when you execute sqlcmd from a remote computer on the network.

Leprotocole peut avoir la valeur tcp (TCP/IP), lpc (mémoire partagée) ou np (canaux nommés).protocol can be tcp (TCP/IP), lpc (shared memory), or np (named pipes).

Si vous ne spécifiez pas server_name [ \instance_name ] quand vous démarrez sqlcmd, SQL Server cherche et utilise la variable d’environnement SQLCMDSERVER.If you do not specify a server_name [ \instance_name ] when you start sqlcmd, SQL Server checks for and uses the SQLCMDSERVER environment variable.

Note

La variable d'environnement OSQLSERVER a été conservée pour assurer une compatibilité descendante.The OSQLSERVER environment variable has been kept for backward compatibility. La variable d’environnement SQLCMDSERVER est prioritaire par rapport à la variable d’environnement OSQLSERVER ; sqlcmd et osql peuvent donc être utilisés l’un à côté de l’autre sans interférence et les anciens scripts continuent à fonctionner.The SQLCMDSERVER environment variable takes precedence over the OSQLSERVER environment variable; this means that sqlcmd and osql can be used next to each other without interference and that old scripts will continue to work.

-U ID_connexion-U login_id
Est le nom de connexion ou le nom d’utilisateur de base de données autonome.Is the login name or contained database user name. Pour les utilisateurs de base de données autonome, vous devez fournir l’option de nom de base de données (-d).For contained database users, you must provide the database name option (-d).

Note

La variable d'environnement OSQLUSER est disponible à des fins de compatibilité descendante.The OSQLUSER environment variable is available for backward compatibility. La variable d'environnement SQLCMDUSER est prioritaire par rapport à la variable d'environnement OSQLUSER.The SQLCMDUSER environment variable takes precedence over the OSQLUSER environment variable. Il est donc possible d’utiliser sqlcmd et osql côte à côte sans interférence.This means that sqlcmd and osql can be used next to each other without interference. Cela signifie également que les scripts osql existants continueront de fonctionner.It also means that existing osql scripts will continue to work.

Si ni l’option -U, ni l’option -P ne sont spécifiées, sqlcmd tente de se connecter en utilisant le mode d’authentification Microsoft Windows.If neither the -U option or the -P option is specified, sqlcmd tries to connect by using Microsoft Windows Authentication mode. L’authentification est basée sur le compte Windows de l’utilisateur exécutant sqlcmd.Authentication is based on the Windows account of the user who is running sqlcmd.

Si l’option -U est utilisée avec l’option -E (décrite plus loin dans cet article), un message d’erreur est généré.If the -U option is used with the -E option (described later in this article), an error message is generated. Si l’option -U est suivie de plusieurs arguments, un message d’erreur est généré et le programme se termine.If the -U option is followed by more than one argument, an error message is generated and the program exits.

-z nouveau_mot_de_passe-z new_password
Modifier le mot de passe :Change password:

sqlcmd -U someuser -P s0mep@ssword -z a_new_p@a$$w0rd

-Z nouveau_mot_de_passe-Z new_password
Modifier le mot de passe et quitter :Change password and exit:

sqlcmd -U someuser -P s0mep@ssword -Z a_new_p@a$$w0rd

Options d’entrée/sortieInput/Output Options
-f page_de_codes | i:page_de_codes[,o:page_de_codes] | o:page_de_codes[,i:page_de_codes]-f codepage | i:codepage[,o:codepage] | o:codepage[,i:codepage]
Spécifie les pages de codes d'entrée et de sortie.Specifies the input and output code pages. Le numéro de pages de codes est une valeur numérique spécifiant une page de codes Windows installée.The codepage number is a numeric value that specifies an installed Windows code page.

Règles de conversion des pages de code :Code-page conversion rules:

  • Si aucune page de codes n’est spécifiée, sqlcmd utilise la page de codes en cours, à la fois pour le fichier d’entrée et le fichier de sortie, sauf si le fichier d’entrée est un fichier Unicode, auquel cas aucune conversion n’est requise.If no code pages are specified, sqlcmd will use the current code page for both input and output files, unless the input file is a Unicode file, in which case no conversion is required.

  • sqlcmd reconnaît automatiquement les fichiers d’entrée Unicode Big-endian et Little-endian.sqlcmd automatically recognizes both big-endian and little-endian Unicode input files. Si l’option -u est spécifiée, les données de sortie sont toujours de type Unicode Little-endian.If the -u option has been specified, the output will always be little-endian Unicode.

  • Si aucun fichier de sortie n'est spécifié, la page de codes de sortie correspond à la page de codes de la console.If no output file is specified, the output code page will be the console code page. Cette approche permet aux données de sortie d'être correctement affichées sur la console.This approach enables the output to be displayed correctly on the console.

  • Plusieurs fichiers d'entrée sont supposés correspondre à une même page de codes.Multiple input files are assumed to be of the same code page. Les fichiers d'entrée Unicode et non Unicode peuvent être mélangés.Unicode and non-Unicode input files can be mixed.

    Entrez chcp à l’invite de commandes pour vérifier la page de codes de Cmd.exe.Enter chcp at the command prompt to verify the code page of Cmd.exe.

    i - input_file[,d’entrée_fichier2...]-i input_file[,input_file2...]
    Identifie le fichier contenant un traitement d'instructions SQL ou des procédures stockées.Identifies the file that contains a batch of SQL statements or stored procedures. Plusieurs fichiers peuvent être spécifiés, ils sont lus et traités dans l'ordre.Multiple files may be specified that will be read and processed in order. N'utilisez pas d'espace entre les noms de fichiers.Do not use any spaces between file names. sqlcmd vérifie d’abord que tous les fichiers spécifiés existent.sqlcmd will first check to see whether all the specified files exist. Si un ou plusieurs fichiers n’existent pas, sqlcmd se termine.If one or more files do not exist, sqlcmd will exit. Les options -i et -Q/-q s'excluent mutuellement.The -i and the -Q/-q options are mutually exclusive.

    Exemples de chemins :Path examples:

-i C:\<filename>  
-i \\<Server>\<Share$>\<filename>  
-i "C:\Some Folder\<file name>"  

Les chemins d'accès aux fichiers comportant des espaces doivent être placés entre guillemets.File paths that contain spaces must be enclosed in quotation marks.

Cette option peut être utilisée plusieurs fois : -ifichier_entrée -II fichier_entrée.This option may be used more than once: -iinput_file -II input_file.

-o output_file-o output_file
Identifie le fichier recevant une sortie de sqlcmd.Identifies the file that receives output from sqlcmd.

Si -u est spécifié, le fichier_sortie est stocké au format Unicode.If -u is specified, the output_file is stored in Unicode format. Si le nom de fichier n’est pas valide, un message d’erreur est généré et sqlcmd se termine.If the file name is not valid, an error message is generated, and sqlcmd exits. sqlcmd ne prend pas en charge l’écriture simultanée de plusieurs processus sqlcmd dans le même fichier.sqlcmd does not support concurrent writing of multiple sqlcmd processes to the same file. La sortie fichier sera endommagée ou incorrecte.The file output will be corrupted or incorrect. Consultez le -f commutateur concerne également les formats de fichier.See the -f switch is also relevant to file formats. Ce fichier sera créé s'il n'existe pas.This file will be created if it does not exist. Un fichier portant le même nom qui provient d’une session sqlcmd antérieure est remplacé.A file of the same name from a prior sqlcmd session will be overwritten. Le fichier spécifié ici n'est pas le fichier stdout .The file specified here is not the stdout file. Si un fichier stdout est spécifié, ce fichier ne sera pas utilisé.If a stdout file is specified, this file will not be used.

Exemples de chemins :Path examples:

-o C:< filename>  
-o \\<Server>\<Share$>\<filename>  
-o "C:\Some Folder\<file name>"  

Les chemins d'accès aux fichiers comportant des espaces doivent être placés entre guillemets.File paths that contain spaces must be enclosed in quotation marks.

-r[0 | 1]-r[0 | 1]
Redirige la sortie des messages d’erreur à l’écran (stderr).Redirects the error message output to the screen (stderr). Si vous n'indiquez aucun paramètre ou si vous spécifiez la valeur 0, seuls les messages d'erreur dotés d'un degré de gravité égal ou supérieur à 11 sont redirigés.If you do not specify a parameter or if you specify 0, only error messages that have a severity level of 11 or higher are redirected. Si vous indiquez la valeur 1, tous les messages émis, y compris PRINT, sont redirigés.If you specify 1, all error message output including PRINT is redirected. Est sans effet si vous utilisez - o.Has no effect if you use -o. Par défaut, les messages sont envoyés à stdout.By default, messages are sent to stdout.

-R-R
Demande à sqlcmd de localiser les colonnes numériques, de devise, de date et heure récupérées auprès de SQL Server, en fonction des paramètres régionaux du client.Causes sqlcmd to localize numeric, currency, date, and time columns retrieved from SQL Server based on the client's locale. Par défaut, ces colonnes sont affichées à l'aide des paramètres régionaux du serveur.By default, these columns are displayed using the server's regional settings.

-u-u
Spécifie le stockage de fichier_sortie au format Unicode, quel que soit le format de fichier_entrée.Specifies that output_file is stored in Unicode format, regardless of the format of input_file.

Options relatives à l’exécution de requêtesQuery Execution Options
-e-e
Écrit des scripts d’entrée sur l’appareil de sortie standard (stdout).Writes input scripts to the standard output device (stdout).

-I-I
Attribue la valeur ON à l'option de connexion SET QUOTED_IDENTIFIER.Sets the SET QUOTED_IDENTIFIER connection option to ON. La valeur OFF est choisie par défaut.By default, it is set to OFF. Pour plus d’informations, consultez SET QUOTED_IDENTIFIER (Transact-SQL).For more information, see SET QUOTED_IDENTIFIER (Transact-SQL).

-q " requête cmdline "-q " cmdline query "
Exécute une requête au démarrage de sqlcmd , mais ne quitte pas sqlcmd au terme de l’exécution de la requête.Executes a query when sqlcmd starts, but does not exit sqlcmd when the query has finished running. Il est possible d'exécuter des requêtes séparées par plusieurs points-virgules.Multiple-semicolon-delimited queries can be executed. Placez la requête entre guillemets, comme dans l'exemple suivant.Use quotation marks around the query, as shown in the following example.

À l'invite de commandes, tapez :At the command prompt, type:

sqlcmd -d AdventureWorks2012 -q "SELECT FirstName, LastName FROM Person.Person WHERE LastName LIKE 'Whi%';"

sqlcmd -d AdventureWorks2012 -q "SELECT TOP 5 FirstName FROM Person.Person;SELECT TOP 5 LastName FROM Person.Person;"

Important

N'utilisez pas le terminateur GO dans la requête.Do not use the GO terminator in the query.

Si l’option -b est spécifiée avec cette option, sqlcmd se termine avec une erreur.If -b is specified together with this option, sqlcmd exits on error. L’option -b est traitée plus loin dans cet article.-b is described later in this article.

-Q " requête cmdline "-Q " cmdline query "
Exécute une requête quand sqlcmd démarre, puis quitte immédiatement sqlcmd.Executes a query when sqlcmd starts and then immediately exits sqlcmd. Il est possible d'exécuter des requêtes séparées par plusieurs points-virgules.Multiple-semicolon-delimited queries can be executed.

Placez la requête entre guillemets, comme dans l'exemple suivant.Use quotation marks around the query, as shown in the following example.

À l'invite de commandes, tapez :At the command prompt, type:

sqlcmd -d AdventureWorks2012 -Q "SELECT FirstName, LastName FROM Person.Person WHERE LastName LIKE 'Whi%';"

sqlcmd -d AdventureWorks2012 -Q "SELECT TOP 5 FirstName FROM Person.Person;SELECT TOP 5 LastName FROM Person.Person;"

Important

N'utilisez pas le terminateur GO dans la requête.Do not use the GO terminator in the query.

Si l’option -b est spécifiée avec cette option, sqlcmd se termine avec une erreur.If -b is specified together with this option, sqlcmd exits on error. L’option -b est traitée plus loin dans cet article.-b is described later in this article.

-t délai_expiration_requête-t query_timeout
Spécifie le nombre de secondes accordées pour l'exécution d'une commande (ou une instruction SQL). Cette option définit la variable de script sqlcmd SQLCMDSTATTIMEOUT.Specifies the number of seconds before a command (or SQL statement) times out. This option sets the sqlcmd scripting variable SQLCMDSTATTIMEOUT. Si une valeur délai_expiration_requête n’est pas spécifiée, la commande n’a pas de délai d’expiration. La valeur de expiration**requête doit être un nombre compris entre 1 et 65 534.If a time_out value is not specified, the command does not time out. The query**time_out must be a number between 1 and 65534. Si la valeur fournie n’est pas numérique ou n’est pas comprise dans cette plage, sqlcmd génère un message d’erreur.If the value supplied is not numeric or does not fall into that range, sqlcmd generates an error message.

Note

La valeur de délai d’expiration réelle peut différer de quelques secondes de la valeur délai_expiration .The actual time out value may vary from the specified time_out value by several seconds.

-vvar = valeur[ var = valeur...]-vvar = value[ var = value...]
Crée une variable de script sqlcmdqui peut être utilisée dans un script sqlcmd .Creates a sqlcmdscripting variable that can be used in a sqlcmd script. Placez la valeur entre guillemets si elle contient des espaces.Enclose the value in quotation marks if the value contains spaces. Vous pouvez spécifier plusieurs valeurs var="valeurs".You can specify multiple var="values" values. Si l’une des valeurs spécifiées comporte des erreurs, sqlcmd génère un message d’erreur et se termine.If there are errors in any of the values specified, sqlcmd generates an error message and then exits.

sqlcmd -v MyVar1=something MyVar2="some thing"

sqlcmd -v MyVar1=something -v MyVar2="some thing"

-x-x
Demande à sqlcmd d’ignorer les variables de script.Causes sqlcmd to ignore scripting variables. Ce paramètre s’avère utile quand un script contient de nombreuses instructions INSERT pouvant contenir des chaînes dotées du même format que des variables régulières, par exemple $(nom_variable).This parameter is useful when a script contains many INSERT statements that may contain strings that have the same format as regular variables, such as $(variable_name).

Options relatives à la mise en formeFormatting Options
-h headers-h headers
Spécifie le nombre de lignes à imprimer entre les en-têtes de colonne.Specifies the number of rows to print between the column headings. Par défaut, les en-têtes ne sont imprimés qu'une fois pour chaque jeu de résultats d'une requête.The default is to print headings one time for each set of query results. Cette option définit la variable de script sqlcmd SQLCMDHEADERS.This option sets the sqlcmd scripting variable SQLCMDHEADERS. Utilisez -1 pour indiquer qu’aucun en-tête ne doit être imprimé.Use -1 to specify that headers not be printed. En présence d’une valeur non valide, sqlcmd génère un message d’erreur et se termine.Any value that is not valid causes sqlcmd to generate an error message and then exit.

-k [1 | 2]-k [1 | 2]
Supprime de la sortie tous les caractères de contrôle, par exemple les tabulations et les caractères de nouvelle ligne.Removes all control characters, such as tabs and new line characters from the output. Ce paramètre préserve la mise en forme des colonnes lorsque des données sont retournées.This parameter preserves column formatting when data is returned. Si 1 est spécifié, les caractères de contrôle sont remplacés par un espace.If 1 is specified, the control characters are replaced by a single space. Si 2 est spécifié, les caractères de contrôle sont remplacés par un espace.If 2 is specified, consecutive control characters are replaced by a single space. -k est identique à -k1.-k is the same as -k1.

-s col_separator-s col_separator
Spécifie le caractère de séparation des colonnes.Specifies the column-separator character. Le caractère espace est utilisé par défaut.The default is a blank space. Cette option définit la variable de script sqlcmd SQLCMDCOLSEP.This option sets the sqlcmd scripting variable SQLCMDCOLSEP. Pour utiliser des caractères ayant une signification spéciale pour le système d'exploitation, tels que le « et » commercial (&) ou le point-virgule (;), placez ce caractère entre guillemets (").To use characters that have special meaning to the operating system such as the ampersand (&), or semicolon (;), enclose the character in quotation marks ("). Le séparateur des colonnes peut être n'importe quel caractère 8 bits.The column separator can be any 8-bit character.

-w column_width-w column_width
Spécifie la largeur d'écran pour la sortie.Specifies the screen width for output. Cette option définit la variable de script sqlcmd SQLCMDWIDTH.This option sets the sqlcmd scripting variable SQLCMDCOLWIDTH. La largeur de colonne doit être un nombre supérieur à 8 et inférieur à 65536.The column width must be a number greater than 8 and less than 65536. Si la largeur de colonne spécifiée n’est pas comprise dans cette plage, sqlcmd génère un message d’erreur.If the specified column width does not fall into that range, sqlcmd generates an error message. La largeur par défaut est de 80 caractères.The default width is 80 characters. Lorsque la longueur d'une ligne de sortie est supérieure à la largeur de colonne spécifiée, elle revient à la ligne suivante.When an output line exceeds the specified column width, it wraps on to the next line.

-W-W
Cette option supprime les espaces à droite d'une colonne.This option removes trailing spaces from a column. Utilisez cette option avec l’option -s lors de la préparation de données à exporter dans une autre application.Use this option together with the -s option when preparing data that is to be exported to another application. Elle ne peut pas être utilisée avec les options -y ou -Y .Cannot be used with the -y or -Y options.

-y largeur_affichage_type_longueur_variable-y variable_length_type_display_width
Définit la variable de script sqlcmd SQLCMDMAXVARTYPEWIDTH.Sets the sqlcmd scripting variable SQLCMDMAXVARTYPEWIDTH. La valeur par défaut est 256.The default is 256. Elle limite le nombre de caractères retournés pour les types de données de longueur variable importante :It limits the number of characters that are returned for the large variable length data types:

  • varchar(max)varchar(max)

  • nvarchar(max)nvarchar(max)

  • varbinary(max)varbinary(max)

  • xmlxml

  • UDT (types de données définis par l’utilisateur)UDT (user-defined data types)

  • texttext

  • ntextntext

  • imageimage

Note

Les types UDT peuvent être de longueur fixe, selon la mise en œuvre.UDTs can be of fixed length depending on the implementation. Si cette longueur d’un type UDT à longueur fixe est inférieure à largeur_affichage, la valeur du type UDT retournée n’est pas affectée.If this length of a fixed length UDT is shorter that display_width, the value of the UDT returned is not affected. Cependant, si la longueur est supérieure à largeur_affichage, la sortie est tronquée.However, if the length is longer than display_width, the output is truncated.

Important

Utilisez l’option -y 0 avec une extrême prudence, car elle peut créer de graves problèmes de performances sur le serveur et le réseau, en fonction de la taille des données retournées.Use the -y 0 option with extreme caution because it may cause serious performance issues on both the server and the network, depending on the size of data returned.

-Y largeur_affichage_type_longueur_fixe-Y fixed_length_type_display_width
Définit la variable de script sqlcmd SQLCMDMAXFIXEDTYPEWIDTH.Sets the sqlcmd scripting variable SQLCMDMAXFIXEDTYPEWIDTH. La valeur par défaut est 0 (illimitée).The default is 0 (unlimited). Limite le nombre de caractères retournés pour les types de données suivants :Limits the number of characters that are returned for the following data types:

  • char( n ), où 1<=n<=8000char( n ), where 1<=n<=8000

  • nchar(n n ), où 1<=n<=4000nchar(n n ), where 1<=n<=4000

  • varchar(n n ), où 1<=n<=8000varchar(n n ), where 1<=n<=8000

  • nvarchar(n n ), où 1<=n<=4000nvarchar(n n ), where 1<=n<=4000

  • varbinary(n n ), où 1<=n<=4000varbinary(n n ), where 1<=n<=4000

  • variantvariant

    Options relatives aux rapports d’erreursError Reporting Options
    -b-b
    Spécifie que sqlcmd prend fin et retourne une valeur DOS ERRORLEVEL quand une erreur se produit.Specifies that sqlcmd exits and returns a DOS ERRORLEVEL value when an error occurs. La valeur qui est retournée à la variable DOS ERRORLEVEL est 1 quand le message d’erreur de SQL Server a un niveau de gravité supérieur à 10 ; sinon, la valeur retournée est 0.The value that is returned to the DOS ERRORLEVEL variable is 1 when the SQL Server error message has a severity level greater than 10; otherwise, the value returned is 0. Si l’option -V a été définie en complément de -b, sqlcmd ne signale pas d’erreur si le niveau de gravité est inférieur aux valeurs définies à l’aide de -V.If the -V option has been set in addition to -b, sqlcmd will not report an error if the severity level is lower than the values set using -V. Les fichiers de commande peuvent tester la valeur de ERRORLEVEL et traiter l'erreur d'une manière appropriée.Command prompt batch files can test the value of ERRORLEVEL and handle the error appropriately. sqlcmd ne signale pas d’erreurs pour un niveau de gravité 10 (messages d’information).sqlcmd does not report errors for severity level 10 (informational messages).

    Si le script sqlcmd contient un commentaire incorrect, une erreur de syntaxe ou si une variable de script est manquante, la valeur ERRORLEVEL retournée est 1.If the sqlcmd script contains an incorrect comment, syntax error, or is missing a scripting variable, ERRORLEVEL returned is 1.

    -m error_level-m error_level
    Détermine les messages d’erreur envoyés à stdout.Controls which error messages are sent to stdout. Les messages assortis d'un niveau de gravité supérieur ou égal à ce niveau sont envoyés.Messages that have a severity level greater than or equal to this level are sent. Quand cette valeur est égale à -1, tous les messages, notamment les messages d’information, sont envoyés.When this value is set to -1, all messages including informational messages, are sent. Les espaces ne sont pas autorisés entre -m et -1.Spaces are not allowed between the -m and -1. Par exemple, -m-1 est valide, mais -m-1 ne l’est pas.For example, -m-1 is valid, and -m -1 is not.

    Cette option définit également la variable de script sqlcmd SQLCMDERRORLEVEL.This option also sets the sqlcmd scripting variable SQLCMDERRORLEVEL. La valeur par défaut de cette variable est 0.This variable has a default of 0.

    -V niveau_gravité_erreurs-V error_severity_level
    Contrôle le niveau de gravité utilisé pour définir la variable ERRORLEVEL.Controls the severity level that is used to set the ERRORLEVEL variable. Les messages d'erreur assortis de niveaux de gravité supérieurs ou égaux à cette valeur définissent ERRORLEVEL.Error messages that have severity levels greater than or equal to this value set ERRORLEVEL. Les valeurs inférieures à 0 sont signalées comme étant 0.Values that are less than 0 are reported as 0. La valeur de la variable ERRORLEVEL peut être testée au moyen de fichiers de commandes et CMD.Batch and CMD files can be used to test the value of the ERRORLEVEL variable.

    Options diversesMiscellaneous Options
    -a packet_size-a packet_size
    Demande un paquet d'une taille différente.Requests a packet of a different size. Cette option définit la variable de script sqlcmd SQLCMDPACKETSIZE.This option sets the sqlcmd scripting variable SQLCMDPACKETSIZE. taille_paquet doit être une valeur comprise entre 512 et 32767.packet_size must be a value between 512 and 32767. La valeur par défaut est de 4096.The default = 4096. Une plus grande taille de paquet peut améliorer les performances d'exécution des scripts comportant un grand nombre d'instructions SQL entre des commandes GO.A larger packet size can enhance performance for execution of scripts that have lots of SQL statements between GO commands. Vous pouvez demander une taille de paquet plus élevée.You can request a larger packet size. Cependant, si la requête est refusée, sqlcmd adopte la taille par défaut du serveur comme taille de paquet.However, if the request is denied, sqlcmd uses the server default for packet size.

    -c terminateur_traitement-c batch_terminator
    Spécifie le terminateur de traitement.Specifies the batch terminator. Par défaut, il faut entrer la commande « GO » sur une ligne isolée pour terminer une commande et la soumettre à SQL Server.By default, commands are terminated and sent to SQL Server by typing the word "GO" on a line by itself. Quand vous réinitialisez le terminateur du lot, n’utilisez pas de mots clés réservés de Transact-SQL ou des caractères ayant une signification particulière pour le système d’exploitation, même s’ils sont précédés d’une barre oblique inverse.When you reset the batch terminator, do not use Transact-SQL reserved keywords or characters that have special meaning to the operating system, even if they are preceded by a backslash.

    -L[c]-L[c]
    Répertorie tous les serveurs configurés localement et le nom des serveurs diffusant sur le réseau.Lists the locally configured server computers, and the names of the server computers that are broadcasting on the network. Ce paramètre ne peut pas être utilisé en combinaison avec d'autres paramètres.This parameter cannot be used in combination with other parameters. Le nombre maximal de serveurs pouvant être répertoriés est de 3000.The maximum number of server computers that can be listed is 3000. Si la liste de serveurs est tronquée en raison de la taille de la mémoire tampon, un message d'avertissement s'affiche.If the server list is truncated because of the size of the buffer a warning message is displayed.

Note

Compte tenu de la nature de la diffusion sur les réseaux, il est possible que sqlcmd ne reçoive pas de réponse de tous les serveurs dans les délais impartis.Because of the nature of broadcasting on networks, sqlcmd may not receive a timely response from all servers. Par conséquent, la liste des serveurs retournée peut varier à chaque invocation de cette option.Therefore, the list of servers returned may vary for each invocation of this option.

Si le paramètre optionnel c est spécifié, la sortie s'affiche sans les serveurs : la ligne d'en-tête et chaque ligne de serveur apparaissent sans espace de début.If the optional parameter c is specified, the output appears without the Servers: header line, and each server line is listed without leading spaces. Cette présentation est appelée une sortie propre.This presentation is referred to as clean output. Une sortie propre améliore les performances de traitement des langages de script.Clean output improves the processing performance of scripting languages.

-p[1]-p[1]
Imprime des statistiques de performances pour chaque jeu de résultats.Prints performance statistics for every result set. L'écran suivant illustre le format des statistiques de performances :The following display is an example of the format for performance statistics:

Network packet size (bytes): n

x xact[s]:

Clock Time (ms.): total t1 avg t2 (t3 xacts per sec.)

Où :Where:

x = Nombre de transactions traitées par SQL Server.x = Number of transactions that are processed by SQL Server.

t1 = Durée totale de toutes les transactions.t1 = Total time for all transactions.

t2 = Durée moyenne d’une transaction spécifique.t2 = Average time for a single transaction.

t3 = Nombre moyen de transactions par seconde.t3 = Average number of transactions per second.

Toutes les durées sont exprimées en millisecondes.All times are in milliseconds.

Si le paramètre facultatif 1 est spécifié, les statistiques sont séparées par deux points et peuvent être aisément importées dans une feuille de calcul ou traitées par un script.If the optional parameter 1 is specified, the output format of the statistics is in colon-separated format that can be imported easily into a spreadsheet or processed by a script.

Si le paramètre facultatif correspond à n’importe quelle valeur autre que 1, une erreur est générée et sqlcmd se termine.If the optional parameter is any value other than 1, an error is generated and sqlcmd exits.

-X[1]-X[1]
Désactive les commandes pouvant compromettre la sécurité du système quand sqlcmd est exécuté à partir d’un fichier de commandes.Disables commands that might compromise system security when sqlcmd is executed from a batch file. Les commandes désactivées sont toujours reconnues ; sqlcmd émet un message d’avertissement et continue.The disabled commands are still recognized; sqlcmd issues a warning message and continues. Si le paramètre facultatif 1 est spécifié, sqlcmd génère un message d’erreur, puis il se termine.If the optional parameter 1 is specified, sqlcmd generates an error message and then exits. Les commandes suivantes sont désactivées quand l’option -X est utilisée :The following commands are disabled when the -X option is used:

  • EDED

  • !!!! commandecommand

    Si l’option -X est spécifiée, elle empêche le passage des variables d’environnement à sqlcmd.If the -X option is specified, it prevents environment variables from being passed on to sqlcmd. Elle interdit également l'exécution du script de démarrage spécifié au moyen de la variable de script SQLCMDINI.It also prevents the startup script specified by using the SQLCMDINI scripting variable from being executed. Pour plus d’informations sur les variables de script sqlcmd , consultez Utiliser sqlcmd avec des variables de script.For more information about sqlcmd scripting variables, see Use sqlcmd with Scripting Variables.

    -?-?
    Affiche la version de sqlcmd et un résumé de la syntaxe des options de sqlcmd .Displays the version of sqlcmd and a syntax summary of sqlcmd options.

Notes Remarks

Les options ne doivent pas nécessairement être utilisées dans l'ordre indiqué dans la section de la syntaxe.Options do not have to be used in the order shown in the syntax section.

Lorsque plusieurs résultats sont retournés, sqlcmd imprime une ligne vide entre chaque ensemble de résultats dans un traitement.When multiple results are returned, sqlcmd prints a blank line between each result set in a batch. En outre, le message <x> rows affected ne s’affiche pas lorsqu’il ne concerne pas l’instruction exécutée.In addition, the <x> rows affected message does not appear when it does not apply to the statement executed.

Pour utiliser sqlcmd de façon interactive, tapez sqlcmd dans l’invite de commandes avec une ou plusieurs des options décrites plus haut dans cet article.To use sqlcmd interactively, type sqlcmd at the command prompt with any one or more of the options described earlier in this article. Pour plus d’informations, consultez Utiliser l’utilitaire sqlcmd.For more information, see Use the sqlcmd Utility

Note

Les options -L, -Q, -Z et -i entraîne la fermeture de sqlcmd après l’exécution.The options -L, -Q, -Z or -i cause sqlcmd to exit after execution.

La longueur totale de la ligne de commande sqlcmd dans l’environnement de commande (Cmd.exe), comprenant tous les arguments et les variables développées, est la longueur déterminée par le système d’exploitation pour Cmd.exe.The total length of the sqlcmd command-line in the command environment (Cmd.exe), including all arguments and expanded variables, is that which is determined by the operating system for Cmd.exe.

Priorité des variables (faible à élevée)Variable Precedence (Low to High)

  1. Variables d'environnement au niveau du système.System-level environmental variables.

  2. Variables d'environnement au niveau de l'utilisateur.User-level environmental variables

  3. Environnement d’exécution de commande (SET X=Y) défini à l’invite de commandes avant l’exécution de sqlcmd.Command shell (SET X=Y) set at command prompt before running sqlcmd.

  4. sqlcmd-v X=Ysqlcmd-v X=Y

  5. :Setvar X Y:Setvar X Y

Note

Pour afficher les variables d’environnement, dans le Panneau de configuration, ouvrez Système, puis cliquez sur l’onglet Avancé .To view the environmental variables, in Control Panel, open System, and then click the Advanced tab.

Variables de script sqlcmdsqlcmd Scripting Variables

VariableVariable Commutateur associéRelated switch R/W (Lecture/écriture)R/W Valeur par défautDefault
SQLCMDUSERSQLCMDUSER -U-U RR """"
SQLCMDPASSWORDSQLCMDPASSWORD -P-P -- """"
SQLCMDSERVERSQLCMDSERVER -S-S RR "DefaultLocalInstance""DefaultLocalInstance"
SQLCMDWORKSTATIONSQLCMDWORKSTATION -H-H RR "ComputerName""ComputerName"
SQLCMDDBNAMESQLCMDDBNAME -d-d RR """"
SQLCMDLOGINTIMEOUTSQLCMDLOGINTIMEOUT -l-l R/W (Lecture/écriture)R/W "8" (secondes)"8" (seconds)
SQLCMDSTATTIMEOUTSQLCMDSTATTIMEOUT -t-t R/W (Lecture/écriture)R/W "0" = Attendre indéfiniment"0" = wait indefinitely
SQLCMDHEADERSSQLCMDHEADERS -H-h R/W (Lecture/écriture)R/W "0""0"
SQLCMDCOLSEPSQLCMDCOLSEP -S-s R/W (Lecture/écriture)R/W « »" "
SQLCMDCOLWIDTHSQLCMDCOLWIDTH -w-w R/W (Lecture/écriture)R/W "0""0"
SQLCMDPACKETSIZESQLCMDPACKETSIZE -A-a RR "4096""4096"
SQLCMDERRORLEVELSQLCMDERRORLEVEL -M-m R/W (Lecture/écriture)R/W 00
SQLCMDMAXVARTYPEWIDTHSQLCMDMAXVARTYPEWIDTH -y-y R/W (Lecture/écriture)R/W "256""256"
SQLCMDMAXFIXEDTYPEWIDTHSQLCMDMAXFIXEDTYPEWIDTH -y-Y R/W (Lecture/écriture)R/W "0" = illimitée"0" = unlimited
SQLCMDEDITORSQLCMDEDITOR R/W (Lecture/écriture)R/W "edit.com""edit.com"
SQLCMDINISQLCMDINI RR """"
SQLCMDUSEAADSQLCMDUSEAAD -G-G R/W (Lecture/écriture)R/W """"

SQLCMDUSER, SQLCMDPASSWORD et SQLCMDSERVER sont définis lorsque la commande :Connect est utilisée.SQLCMDUSER, SQLCMDPASSWORD, and SQLCMDSERVER are set when :Connect is used.

R indique que la valeur ne peut être définie qu'une seule fois lors de l'initialisation du programme.R indicates the value can only be set one time during program initialization.

R/W (« Lecture/écriture ») indique que la valeur peut être modifiée à l’aide de la commande setvar et que les commandes ultérieures sont tributaires de la nouvelle valeur.R/W indicates that the value can be modified by using the setvar command and subsequent commands will be influenced by the new value.

Commandes sqlcmdsqlcmd Commands

En complément des instructions Transact-SQL dans sqlcmd, vous pouvez également utiliser les commandes suivantes :In addition to Transact-SQL statements within sqlcmd, the following commands are also available:

GO [count]GO [count] :List:List
[:] RESET[:] RESET :Error:Error
[:] ED[:] ED :Out:Out
[:] !![:] !! :Perftrace:Perftrace
[:] QUIT[:] QUIT :Connect:Connect
[:] EXIT[:] EXIT :On Error:On Error
:r:r :Help:Help
:ServerList:ServerList :XML [ON | OFF]:XML [ON | OFF]
:Setvar:Setvar :Listvar:Listvar

Tenez compte des éléments suivants lorsque vous utilisez des commandes sqlcmd :Be aware of the following when you use sqlcmd commands:

  • Toutes les commandes sqlcmd , à l’exception de GO, doivent être précédées d’un signe deux-points (:).All sqlcmd commands, except GO, must be prefixed by a colon (:).

    Important

    Pour assurer la compatibilité descendante avec les scripts osql existants, certaines commandes sont reconnues sans les deux-points. Elles sont indiquées par [:].To maintain backward compatibility with existing osql scripts, some of the commands will be recognized without the colon, indicated by the [:].

  • Les commandessqlcmd ne sont reconnues que si elles apparaissent au début d’une ligne.sqlcmd commands are recognized only if they appear at the start of a line.

  • Toutes les commandes sqlcmd ne respectent pas la casse.All sqlcmd commands are case insensitive.

  • Chaque commande doit figurer sur une ligne séparée.Each command must be on a separate line. Une commande ne peut pas être suivie d’une instruction Transact-SQL ou d’une autre commande.A command cannot be followed by a Transact-SQL statement or another command.

  • Les commandes sont exécutées immédiatement.Commands are executed immediately. Elles ne sont pas placées dans le tampon d’exécution comme le sont les instructions Transact-SQL.They are not put in the execution buffer as Transact-SQL statements are.

    Commandes d’éditionEditing Commands
    [:] ED[:] ED
    Démarre l'éditeur de texte.Starts the text editor. Cet éditeur peut être utilisé pour modifier le lot Transact-SQL actif ou le dernier lot exécuté.This editor can be used to edit the current Transact-SQL batch, or the last executed batch. Pour modifier le dernier traitement exécuté, la commande ED doit être tapée immédiatement après la fin de l'exécution du dernier traitement.To edit the last executed batch, the ED command must be typed immediately after the last batch has completed execution.

    L'éditeur de texte est défini dans la variable d'environnement SQLCMDEDITOR.The text editor is defined by the SQLCMDEDITOR environment variable. L'éditeur par défaut est « edit ».The default editor is 'Edit'. Pour modifier l'éditeur, définissez la variable SQLCMDEDITOR.To change the editor, set the SQLCMDEDITOR environment variable. Par exemple, pour choisir l’éditeur Bloc-notes de Microsoft, à l’invite de commandes, tapez :For example, to set the editor to Microsoft Notepad, at the command prompt, type:

    SET SQLCMDEDITOR=notepad

    [:] RESET[:] RESET
    Vide le cache d'instruction.Clears the statement cache.

    :List:List
    Imprime le contenu du cache d'instruction.Prints the content of the statement cache.

    VariablesVariables
    : Setvar < var> [ »valeur» ]:Setvar <var> [ "value" ]
    Définit les variables de script sqlcmd .Defines sqlcmd scripting variables. Les variables de script possèdent le format suivant : $(VARNAME).Scripting variables have the following format: $(VARNAME).

    Les noms de variable ne respectent pas la casse.Variable names are case insensitive.

    Les variables de script peuvent être définies comme suit :Scripting variables can be set in the following ways:

  • Implicitement à l'aide d'une option de ligne de commande.Implicitly using a command-line option. Par exemple, l’option -l définit la variable sqlcmd SQLCMDLOGINTIMEOUT.For example, the -l option sets the SQLCMDLOGINTIMEOUT sqlcmd variable.

  • Explicitement à l'aide de la commande :Setvar .Explicitly by using the :Setvar command.

  • En définissant une variable d’environnement avant d’exécuter sqlcmd.By defining an environment variable before you run sqlcmd.

Note

L’option -X empêche le passage des variables d’environnement à sqlcmd.The -X option prevents environment variables from being passed on to sqlcmd.

Si une variable définie à l'aide de :Setvar et une variable d'environnement possèdent le même nom, la variable définie à l'aide de :Setvar est prioritaire.If a variable defined by using :Setvar and an environment variable have the same name, the variable defined by using :Setvar takes precedence.

Les noms de variable ne doivent pas contenir de caractères espace.Variable names must not contain blank space characters.

Les noms de variables ne peuvent pas posséder la même forme qu'une expression variable, telle que $(var).Variable names cannot have the same form as a variable expression, such as $(var).

Si une valeur de chaîne de la variable de script contient des espaces, placez la valeur entre guillemets.If the string value of the scripting variable contains blank spaces, enclose the value in quotation marks. Si aucune valeur n'est spécifiée pour une variable de script, cette dernière est supprimée.If a value for a scripting variable is not specified, the scripting variable is dropped.

:Listvar:Listvar
Affiche la liste des variables de script actuellement définies.Displays a list of the scripting variables that are currently set.

Note

Seules les variables de script qui sont définies par sqlcmdet celles qui sont définies avec la commande :Setvar s’affichent.Only scripting variables that are set by sqlcmd, and those that are set using the :Setvar command will be displayed.

Commandes de sortieOutput Commands
:Error :Error
< nom_fichier >| STDERR|STDOUT< filename >| STDERR|STDOUT
Redirige l’ensemble de la sortie d’erreur dans le fichier spécifié par nom_fichiervers stderr ou vers stdout.Redirect all error output to the file specified by file name, to stderr or to stdout. La commande Error peut apparaître plusieurs fois dans un script.The Error command can appear multiple times in a script. Par défaut, la sortie d'erreur est envoyée à stderr.By default, error output is sent to stderr.

nom de fichierfile name
Crée et ouvre un fichier destiné à recevoir la sortie.Creates and opens a file that will receive the output. Si le fichier existe déjà, il est tronqué à zéro octet.If the file already exists, it will be truncated to zero bytes. Si le fichier n'est pas disponible car des autorisations sont requises, ou pour d'autres raisons, la sortie n'est pas modifiée, et elle est envoyée à la dernière destination spécifiée ou à la destination par défaut.If the file is not available because of permissions or other reasons, the output will not be switched and will be sent to the last specified or default destination.

STDERRSTDERR
Dirige la sortie d’erreur vers le flux stderr .Switches error output to the stderr stream. Si cette destination a été redirigée, la cible de cette redirection reçoit la sortie d'erreur.If this has been redirected, the target to which the stream has been redirected will receive the error output.

STDOUTSTDOUT
Fait basculer la sortie d’erreur vers le flux stdout .Switches error output to the stdout stream. Si cette destination a été redirigée, la cible de cette redirection reçoit la sortie d'erreur.If this has been redirected, the target to which the stream has been redirected will receive the error output.

:Out < nom_fichier >| STDERR| STDOUT:Out < filename >| STDERR| STDOUT
Crée et redirige l’ensemble des résultats de requête dans le fichier spécifié par nom_fichiervers stderr ou vers stdout.Creates and redirects all query results to the file specified by file name, to stderr or to stdout. Par défaut, la sortie est envoyée à stdout.By default, output is sent to stdout. Si le fichier existe déjà, il est tronqué à zéro octet.If the file already exists, it is truncated to zero bytes. La commande Out peut apparaître plusieurs fois dans un script.The Out command can appear multiple times in a script.

:Perftrace < nom_fichier >| STDERR| STDOUT:Perftrace < filename >| STDERR| STDOUT
Crée et redirige l’ensemble des informations de traces de performances dans le fichier spécifié par nom_fichiervers stderr ou vers stdout.Creates and redirects all performance trace information to the file specified by file name, to stderr or to stdout. Par défaut, la sortie de traces de performances est envoyée à stdout.By default performance trace output is sent to stdout. Si le fichier existe déjà, il est tronqué à zéro octet.If the file already exists, it is truncated to zero bytes. La commande Perftrace peut apparaître plusieurs fois dans un script.The Perftrace command can appear multiple times in a script.

Commandes de contrôle d’exécutionExecution Control Commands
:On Error[ exit | ignore]:On Error[ exit | ignore]
Définit l'action à effectuer lorsqu'une erreur se produit en cours de script ou d'exécution d'un traitement.Sets the action to be performed when an error occurs during script or batch execution.

Lorsque l’option exit est employée, sqlcmd se termine avec la valeur d’erreur appropriée.When the exit option is used, sqlcmd exits with the appropriate error value.

Lorsque l’option ignore est employée, sqlcmd ignore l’erreur et poursuit l’exécution du traitement ou du script.When the ignore option is used, sqlcmd ignores the error and continues executing the batch or script. Par défaut, un message d’erreur est imprimé.By default, an error message is printed.

[:] QUIT[:] QUIT
Entraîne la fermeture de sqlcmd .Causes sqlcmd to exit.

[:] EXIT[ (instruction) ][:] EXIT[ (statement) ]
Vous permet d’utiliser le résultat d’une instruction SELECT comme valeur de retour de sqlcmd.Lets you use the result of a SELECT statement as the return value from sqlcmd. S'il est numérique, la première colonne de la dernière ligne de résultats est convertie en un entier de 4 octets (entier long).If numeric, the first column of the last result row is converted to a 4-byte integer (long). MS-DOS transmet l'octet de poids faible au processus parent ou au niveau erreur du système d'exploitation.MS-DOS passes the low byte to the parent process or operating system error level. Windows 200x transmet la totalité de l'entier de 4 octets.Windows 200x passes the whole 4-byte integer. La syntaxe de cette commande est la suivante :The syntax is:

:EXIT(query)

Exemple :For example:

:EXIT(SELECT @@ROWCOUNT)

Vous pouvez également inclure le paramètre EXIT dans un fichier de commandes.You can also include the EXIT parameter as part of a batch file. Par exemple, à l'invite de commandes, tapez :For example, at the command prompt, type:

sqlcmd -Q "EXIT(SELECT COUNT(*) FROM '%1')"

L’utilitaire sqlcmd envoie tout le contenu entre parenthèses () au serveur.The sqlcmd utility sends everything between the parentheses () to the server. Si une procédure stockée système sélectionne un ensemble et retourne une valeur, seule la sélection est retournée.If a system stored procedure selects a set and returns a value, only the selection is returned. L’instruction EXIT () sans information entre parenthèses exécute toutes les commandes qui la précèdent dans le traitement, puis se termine sans valeur de retour.The EXIT () statement with nothing between the parentheses executes everything before it in the batch and then exits without a return value.

Lorsqu’une requête incorrecte est spécifiée, sqlcmd se termine sans valeur de retour.When an incorrect query is specified, sqlcmd will exit without a return value.

Liste des formats EXIT :Here is a list of EXIT formats:

  • :EXIT:EXIT

    N'exécute pas le traitement, puis se termine immédiatement sans retourner de valeur.Does not execute the batch, and then quits immediately and returns no value.

  • :EXIT( ):EXIT( )

    Exécute le traitement, puis quitte sans retourner de valeur.Executes the batch, and then quits and returns no value.

  • :EXIT(requête):EXIT(query)

    Exécute le traitement qui inclut la requête, puis se termine après avoir retourné les résultats de la requête.Executes the batch that includes the query, and then quits after it returns the results of the query.

    Si RAISERROR est utilisé dans un script sqlcmd et qu’une erreur de gravité 127 se produit, l’exécution de sqlcmd se termine et l’ID du message est retourné au client.If RAISERROR is used within a sqlcmd script and a state of 127 is raised, sqlcmd will quit and return the message ID back to the client. Exemple :For example:

    RAISERROR(50001, 10, 127)

    Cette erreur arrête l’exécution du script sqlcmd et envoie au client le message 50001.This error will cause the sqlcmd script to end and return the message ID 50001 to the client.

    Les valeurs retournées de -1 à -99 sont réservées à SQL Server, et sqlcmd définit les valeurs de retour supplémentaires suivantes :The return values -1 to -99 are reserved by SQL Server, and sqlcmd defines the following additional return values:

Valeurs de retourReturn Values DescriptionDescription
-100-100 Erreur rencontrée avant la sélection d'une valeur retournée.Error encountered prior to selecting return value.
-101-101 Aucune ligne trouvée lors de la sélection d'une valeur retournée.No rows found when selecting return value.
-102-102 Erreur de conversion survenue lors de la sélection d'une valeur retournée.Conversion error occurred when selecting return value.

GO [count]GO [count]
GO indique la fin d'un traitement et l'exécution des instructions Transact-SQL placées dans le cache.GO signals both the end of a batch and the execution of any cached Transact-SQL statements. Le lot est exécuté plusieurs fois sous forme de lots distincts.The batch is executed multiple times as separate batches. Vous ne pouvez pas déclarer une variable plusieurs fois dans un lot unique.You cannot declare a variable more than once in a single batch.

Commandes diversesMiscellaneous Commands
:r < filename >:r < filename >
Analyse les instructions Transact-SQL et les commandes sqlcmd supplémentaires du fichier spécifié par <nom_fichier> dans le cache des instructions.Parses additional Transact-SQL statements and sqlcmd commands from the file specified by <filename> into the statement cache.

Si le fichier contient des instructions Transact-SQL qui ne sont pas suivies par GO, vous devez entrer GO sur la ligne qui suit :r.If the file contains Transact-SQL statements that are not followed by GO, you must enter GO on the line that follows :r.

Note

< nom_fichier > est lu par rapport au répertoire de démarrage dans lequel sqlcmd a été exécuté.< filename > is read relative to the startup directory in which sqlcmd was run.

Le fichier est lu et exécuté après la rencontre d'un terminateur de traitement.The file will be read and executed after a batch terminator is encountered. Vous pouvez émettre plusieurs commandes :r .You can issue multiple :r commands. Le fichier peut inclure une commande sqlcmd .The file may include any sqlcmd command. Elle inclut le terminateur de traitement GO.This includes the batch terminator GO.

Note

Le nombre de lignes affichées en mode interactif augmente de 1 chaque fois qu'une commande :r est rencontrée.The line count that is displayed in interactive mode will be increased by one for every :r command encountered. La commande :r apparaît dans la sortie de la commande list.The :r command will appear in the output of the list command.

:Serverlist:Serverlist
Répertorie tous les serveurs configurés localement et les noms des serveurs émettant sur le réseau.Lists the locally configured servers and the names of the servers broadcasting on the network.

:Connect nom_serveur[\nom_instance] [-l délai_expiration] [-U nom_utilisateur [-P mot_de_passe]]:Connect server_name[\instance_name] [-l timeout] [-U user_name [-P password]]
Se connecte à une instance de SQL Server.Connects to an instance of SQL Server . Ferme également la connexion actuelle.Also closes the current connection.

Options de délai :Time-out options:

00 attendre indéfinimentwait forever
n>0n>0 attendre n secondeswait for n seconds

La variable de script SQLCMDSERVER reflète la connexion active actuelle.The SQLCMDSERVER scripting variable will reflect the current active connection.

Si l'argument timeout n'est pas spécifié, la valeur de la variable SQLCMDLOGINTIMEOUT est la valeur par défaut.If timeout is not specified, the value of the SQLCMDLOGINTIMEOUT variable is the default.

Si seulement nom_utilisateur est spécifié (en tant qu’option ou en tant que variable d’environnement), un message invite l’utilisateur à entrer un mot de passe.If only user_name is specified (either as an option, or as an environment variable), the user will be prompted to enter a password. Ce message n’apparaît pas si la variable d’environnement SQLCMDUSER ou la variable d’environnement SQLCMDPASSWORD a été définie.Users are not prompted if the SQLCMDUSER or SQLCMDPASSWORD environment variables have been set. Si ni les options ni les variables d'environnement ne sont fournies, le mode d'authentification Windows est employé pour se connecter.If neither options nor environment variables are provided, Windows Authentication mode is used to sign in. Par exemple, pour établir une connexion à une instance instance1 de SQL Server, myserver, à l’aide de la sécurité intégrée, utilisez la commande suivante :For example to connect to an instance, instance1, of SQL Server, myserver, by using integrated security you would use the following command:

:connect myserver\instance1

Pour établir une connexion à l'instance par défaut de myserver en utilisant des variables de script, utilisez ce qui suit :To connect to the default instance of myserver using scripting variables, you would use the following:

:setvar myusername test

:setvar myservername myserver

:connect $(myservername) $(myusername)

[:] !!< commande>[:] !!< command>
Exécute des commandes du système d'exploitation.Executes operating system commands. Pour exécuter une commande du système d’exploitation, commencez une ligne par deux points d’exclamation (!!) suivis de la commande du système d’exploitation.To execute an operating system command, start a line with two exclamation marks (!!) followed by the operating system command. Exemple :For example:

:!! Dir

Note

La commande est exécutée sur l’ordinateur sur lequel sqlcmd s’exécute.The command is executed on the computer on which sqlcmd is running.

:XML [ON | OFF]:XML [ON | OFF]
Pour plus d’informations, voir Format de sortie XML et Format de sortie JSON plus loin dans cet article.For more information, see XML Output Format and JSON Output Format in this article

:Help:Help
Répertorie les commandes sqlcmd avec une brève description de chaque commande.Lists sqlcmd commands together with a short description of each command.

Noms de fichiers sqlcmdsqlcmd File Names

Les fichiers d’entréesqlcmd peuvent être spécifiés avec l’option -i ou la commande :r .sqlcmd input files can be specified with the -i option or the :r command. Les fichiers de sortie peuvent être spécifiés avec l’option -o ou les commandes :Error, :Out et :Perftrace .Output files can be specified with the -o option or the :Error, :Out and :Perftrace commands. Voici quelques consignes relatives à l'utilisation de ces fichiers :The following are some guidelines for working with these files:

  • Les commandes :Error, :Out et :Perftrace doivent utiliser une valeur <nom_fichier> distincte.:Error, :Out and :Perftrace should use separate <filename>. Si la même valeur <nom_fichier> est utilisée, les entrées des commandes peuvent être mélangées.If the same <filename> is used, inputs from the commands may be intermixed.

  • Si un fichier d’entrée situé sur un serveur distant est appelé à partir de sqlcmd sur un ordinateur local et qu’il contient un chemin d’accès de fichier sur un lecteur, comme :Out C:\OutputFile.txt,If an input file that is located on a remote server is called from sqlcmd on a local computer and the file contains a drive file path such as :Out c:\OutputFile.txt. le fichier de sortie est créé sur l’ordinateur local et non sur le serveur distant.The output file is created on the local computer and not on the remote server.

  • Les chemins d’accès de fichier valides sont les suivants : C:\<filename>, \\<Server>\<Share$>\<filename> et "C:\Some Folder\<file name>".Valid file paths include: C:\<filename>, \\<Server>\<Share$>\<filename>, and "C:\Some Folder\<file name>". Si le chemin d'accès comporte un espace, utilisez des guillemets.If there is a space in the path, use quotation marks.

  • Chaque nouvelle session sqlcmd remplace les fichiers existants qui ont des noms identiques.Each new sqlcmd session will overwrite existing files that have the same names.

Messages d'informationInformational Messages

sqlcmd imprime les messages d’information envoyés par le serveur.sqlcmd prints any informational message that is sent by the server. Dans l’exemple suivant, une fois que les instructions Transact-SQL sont exécutées, un message d’information est affiché.In the following example, after the Transact-SQL statements are executed, an informational message is printed.

Dans l’invite de commandes, tapez la commande :At the command prompt, type the command:

sqlcmd

À l’invite sqlcmd, tapez :At the sqlcmd prompt type:

USE AdventureWorks2012;

GO

Lorsque vous appuyez sur Entrée, le message d'information suivant s'imprime : « Le contexte de la base de données a été modifié et correspond à présent à 'AdventureWorks2012' ».When you press ENTER, the following informational message is printed: "Changed database context to 'AdventureWorks2012'."

Format de sortie des requêtes Transact-SQLOutput Format from Transact-SQL Queries

sqlcmd imprime tout d’abord un en-tête de colonne qui contient les noms de colonne spécifiés dans la liste de sélection.sqlcmd first prints a column header that contains the column names specified in the select list. Les noms de colonne sont séparés avec le caractère SQLCMDCOLSEP.The column names are separated by using the SQLCMDCOLSEP character. Par défaut, il s'agit d'un espace.By default, this is a space. Si le nom de colonne est plus court que la largeur de colonne, la sortie est complétée avec des espaces jusqu'à la colonne suivante.If the column name is shorter than the column width, the output is padded with spaces up to the next column.

Cette ligne est suivie d'un séparateur de ligne qui correspond à une série de tirets.This line will be followed by a separator line that is a series of dash characters. La sortie suivante constitue un exemple.The following output shows an example.

Démarrer sqlcmd.Start sqlcmd. Dans l’invite de commandes sqlcmd, tapez la requête :At the sqlcmd command prompt, type the query:

USE AdventureWorks2012;

SELECT TOP (2) BusinessEntityID, FirstName, LastName

FROM Person.Person;

GO

Lorsque vous appuyez sur ENTRÉE, le jeu de résultats suivant est retourné.When you press ENTER, the following result set is returned.

BusinessEntityID FirstName LastName

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

285 Syed Abbas

293 Catherine Abel

(2 row(s) affected)

Bien que la colonne BusinessEntityID ne soit large que de quatre caractères, elle a été étendue pour contenir les noms de colonne plus longs.Although the BusinessEntityID column is only four characters wide, it has been expanded to accommodate the longer column name. Par défaut, la sortie se termine à 80 caractères.By default, output is terminated at 80 characters. Vous pouvez modifier ceci en utilisant l’option -w ou en définissant la variable de script SQLCMDCOLWIDTH.This can be changed by using the -w option, or by setting the SQLCMDCOLWIDTH scripting variable.

Format de sortie XMLXML Output Format

La sortie XML qui est le résultat d'une clause FOR XML est générée, sans mise en forme, dans un flux continu.XML output that is the result of a FOR XML clause is output, unformatted, in a continuous stream.

Lorsque vous attendez une sortie XML, utilisez la commande suivante : :XML ON.When you expect XML output, use the following command: :XML ON.

Note

sqlcmd retourne des messages d’erreur au format habituel.sqlcmd returns error messages in the usual format. Notez que les messages d'erreur sont également une sortie dans le flux de texte XML au format XML.Notice that the error messages are also output in the XML text stream in XML format. Avec :XML ON, sqlcmd n’affiche aucun message d’information.By using :XML ON, sqlcmd does not display informational messages.

Pour désactiver le mode XML, utilisez la commande suivante : :XML OFF.To set the XML mode to off, use the following command: :XML OFF.

La commande GO ne doit pas apparaître avant la commande XML OFF, car cette dernière remet sqlcmd en sortie orientée ligne.The GO command should not appear before the XML OFF command is issued because the XML OFF command switches sqlcmd back to row-oriented output.

Les données XML (diffusées en continu) et les données d’ensemble de lignes ne peuvent être mélangées.XML (streamed) data and rowset data can't be mixed. Si la commande XML ON n’a pas été émise avant l’exécution d’une instruction Transact-SQL qui génère des flux XML, la sortie est incohérente.If the XML ON command hasn't been issued before a Transact-SQL statement that outputs XML streams is executed, the output is garbled. Une fois la commande XML ON émise, il n’est pas possible d’exécuter des instructions Transact-SQL qui produisent des ensembles de lignes réguliers.Once the XML ON command has been issued, you can't execute Transact-SQL statements that output regular row sets.

Note

La commande :XML ne prend pas en charge l’instruction SET STATISTICS XML.The :XML command does not support the SET STATISTICS XML statement.

Format de sortie JSONJSON Output Format

Lorsque vous attendez une sortie JSON, utilisez la commande suivante : :XML ON.When you expect JSON output, use the following command: :XML ON. Dans le cas contraire, la sortie inclut le nom de colonne et le texte JSON.Otherwise the output includes both the column name and the JSON text. Cette option n’est pas valide pour JSON.This output is not valid JSON.

Pour désactiver le mode XML, utilisez la commande suivante : :XML OFF.To set the XML mode to off, use the following command: :XML OFF.

Pour plus d’informations, voir Format de sortie XML dans cet article.For more info, see XML Output Format in this article.

Utilisation de l’authentification Azure Active DirectoryUsing Azure Active Directory Authentication

Exemples d’utilisation de l’authentification Azure Active Directory :Examples using Azure Active Directory Authentication:

sqlcmd -S Target_DB_or_DW.testsrv.database.windows.net  -G  -l 30
sqlcmd -S Target_DB_or_DW.testsrv.database.windows.net -G -U bob@contoso.com -P MyAADPassword -l 30

Méthodes conseillées sqlcmdsqlcmd Best Practices

Utilisez les méthodes suivantes pour optimiser la sécurité et l'efficacité.Use the following practices to help maximize security and efficiency.

  • Utilisez la sécurité intégrée.Use integrated security.

  • Utilisez -X dans des environnements automatisés.Use -X in automated environments.

  • Protégez les fichiers d'entrée et de sortie à l'aide des autorisations appropriées du système de fichiers NTFS.Secure input and output files by using appropriate NTFS file system permissions.

  • Pour accroître les performances, effectuez autant d’opérations que possible au sein d’une session sqlcmd au lieu de recourir à une série de sessions.To increase performance, do as much in one sqlcmd session as you can, instead of in a series of sessions.

  • Pour l'exécution de requête ou de traitement, définissez des valeurs de délai supérieures à la durée que vous prévoyez pour l'exécution du traitement ou de la requête.Set time-out values for batch or query execution higher than you expect it will take to execute the batch or query.

Voir aussiSee Also

Démarrer l’utilitaire sqlcmd Start the sqlcmd Utility
Exécuter des fichiers de script Transact-SQL à l’aide de sqlcmd Run Transact-SQL Script Files Using sqlcmd
Utiliser l’utilitaire sqlcmd Use the sqlcmd Utility
Utiliser sqlcmd avec des variables de script Use sqlcmd with Scripting Variables
Se connecter au moteur de base de données avec sqlcmd Connect to the Database Engine With sqlcmd
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 CmdExecCreate a CmdExec Job Step

CommentairesFeedback

needhelp_person_icon Forum des outils clients SQLneedhelp_person_icon SQL Client Tools Forum

info_tip Obtenir de l’aideGet Help