Служебная программа sqlcmdsqlcmd Utility

ПРИМЕНЯЕТСЯ к: ДаSQL ServerДабазы данных SQL AzureДахранилище данных SQL Azure Да Параллельное хранилище данныхTHIS TOPIC APPLIES TO: yesSQL ServeryesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

SQL Server 2014 и ниже, в разделе программы sqlcmd.For SQL Server 2014 and lower, see sqlcmd Utility.

Использование программы sqlcmd в Linux, в разделе установке sqlcmd и bcp в Linux.For using sqlcmd on Linux, see Install sqlcmd and bcp on Linux.

Программа sqlcmd позволяет вводить инструкции Transact-SQL, системные процедуры и файлы скриптов из командной строки в редактор запросов в режиме SQLCMD, в файл скрипта Windows или шаг задания операционной системы (Cmd.exe) задания агента SQL Server.The sqlcmd utility lets you enter Transact-SQL statements, system procedures, and script files at the command prompt, in Query Editor in SQLCMD mode, in a Windows script file or in an operating system (Cmd.exe) job step of a SQL Server Agent job. Эта программа использует ODBC для выполнения пакетов Transact-SQL.This utility uses ODBC to execute Transact-SQL batches.

Примечание

Самые последние версии программы sqlcmd доступны в виде веб-выпуска в Центре загрузки.The most recent versions of the sqlcmd utility is available as a web release from the Download Center. Необходима версия 13.1 или более поздней версии, для поддержки постоянного шифрования (-g) и проверки подлинности Azure Active Directory (-G).You need version 13.1 or higher to support Always Encrypted (-g) and Azure Active Directory authentication (-G). (На компьютере можно установить несколько версий sqlcmd.exe.(You may have several versions of sqlcmd.exe installed on your computer. Убедитесь, что используется правильная версия.Be sure you are using the correct version. Чтобы определить версию, выполните sqlcmd -?.)To determine the version, execute sqlcmd -?.)

Можно попробовать программу sqlcmd из оболочки облако Azure как предварительно установленные по умолчанию: запуска оболочки облакаYou can try the sqlcmd utility from Azure Cloud Shell as it is pre-installed by default: Launch Cloud Shell

Чтобы выполнить инструкции sqlcmd в SSMS, выберите "Режим SQLCMD" в раскрывающемся списке "Запрос" на верхней панели навигации.To run sqlcmd statements in SSMS, select SQLCMD Mode from the top navigation Query Menu dropdown.

Важно!

Среда SQL Server Management StudioSQL Server Management Studio (SSMS) использует Microsoft .NET Framework.NET Framework SqlClient для выполнения в обычном режиме и в режиме SQLCMD в редакторе запросов. (SSMS) uses the Microsoft .NET Framework.NET Framework SqlClient for execution in regular and SQLCMD mode in Query Editor. При вызове программы sqlcmd из командной строки sqlcmd использует драйвер ODBC.When sqlcmd is run from the command line, sqlcmd uses the ODBC driver. Так как могут применяться разные параметры по умолчанию, выполнение одного и того же запроса в среде Среда SQL Server Management StudioSQL Server Management Studio в режиме SQLCMD и в программе 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.

В настоящее время в программе sqlcmd не требуется указывать пробел между параметром командной строки и значением.Currently, sqlcmd does not require a space between the command line option and the value. Но в будущих выпусках пробел между параметром командной строки и значением может потребоваться.However, in a future release, a space may be required between the command line option and the value.

Другие разделы:Other topics:

СинтаксисSyntax

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)  

Параметры командной строкиCommand-line Options

Параметры, связанные с именем для входаLogin-Related Options
-A-A
Входит в систему SQL Server посредством выделенного административного соединения.Logs in to SQL Server with a Dedicated Administrator Connection (DAC). Этот вид соединения предназначен для устранения неполадок на сервере.This kind of connection is used to troubleshoot a server. Параметр будет работать только с теми серверами, которые поддерживают выделенные административные соединения.This will only work with server computers that support DAC. Если соединение DAC недоступно, программа sqlcmd выдает сообщение об ошибке и завершает работу.If DAC is not available, sqlcmd generates an error message and then exits. Дополнительные сведения о DAC см. в статье Диагностическое соединение для администраторов баз данных.For more information about DAC, see Diagnostic Connection for Database Administrators. Параметр - не поддерживается с параметром -G.The -A option is not supported with the -G option. При подключении к базе данных SQL с помощью -, необходимо быть администратором SQL server.When connecting to SQL Database using -A, you must be a SQL server administrator. Выделенное административное соединение не доступных для администратора Azure Active Directory.The DAC is not availble for an Azure Active Directory adminstrator.

-C-C
С помощью этого переключателя клиент настраивает неявное доверие к сертификату сервера без проверки.This switch is used by the client to configure it to implicitly trust the server certificate without validation. Этот параметр аналогичен параметру ADO.NET TRUSTSERVERCERTIFICATE = true.This option is equivalent to the ADO.NET option TRUSTSERVERCERTIFICATE = true.

-d имя_базы_данных-d db_name
Выдает инструкцию USE db_name при запуске программы sqlcmd.Issues a USE db_name statement when you start sqlcmd. Этот параметр задает переменную скрипта SQLCMDDBNAME программы sqlcmd .This option sets the sqlcmd scripting variable SQLCMDDBNAME. Она задает начальную базу данных.This specifies the initial database. По умолчанию свойство default-database имени входа.The default is your login's default-database property. Если база данных не существует, выдается сообщение об ошибке и программа sqlcmd завершает работу.If the database does not exist, an error message is generated and sqlcmd exits.

-l login_timeout-l login_timeout
Задает время ожидания (в секундах) при подключении программы sqlcmd через драйвер ODBC при попытке соединения с сервером.Specifies the number of seconds before a sqlcmd login to the ODBC driver times out when you try to connect to a server. Этот параметр задает переменную скрипта SQLCMDLOGINTIMEOUT программы sqlcmd .This option sets the sqlcmd scripting variable SQLCMDLOGINTIMEOUT. По умолчанию время ожидания входа для программы sqlcmd составляет 8 секунд.The default time-out for login to sqlcmd is eight seconds. При использовании параметра - G для подключения к базе данных SQL или хранилищу данных SQL и проверке подлинности с помощью Azure Active Directory рекомендуется задавать время ожидания не меньше 30 секунд.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. Время ожидания входа должно быть числом в диапазоне от 0 до 65 534.The login time-out must be a number between 0 and 65534. Если указанное значение не является числом или выходит за пределы указанного диапазона, sqlcmd выдает сообщение об ошибке.If the value supplied is not numeric or does not fall into that range, sqlcmd generates an error message. Значение 0 задает неограниченное время ожидания.A value of 0 specifies time-out to be infinite.

-E-E
Использует для подключения к SQL Server вместо имени пользователя и пароля доверительное соединение.Uses a trusted connection instead of using a user name and password to log on to SQL Server . По умолчанию, если параметр -E не указан, программа sqlcmd использует доверительное соединение.By default, without -E specified, sqlcmd uses the trusted connection option.

Параметр -E не использует имя пользователя и пароль, указанные в переменных среды, например SQLCMDPASSWORD.The -E option ignores possible user name and password environment variable settings such as SQLCMDPASSWORD. Если параметр -E используется в сочетании с параметром -U или -P , выдается сообщение об ошибке.If the -E option is used together with the -U option or the -P option, an error message is generated.

-g-g
Задает значение Enabledдля параметра "Шифрование столбцов".Sets the Column Encryption Setting to Enabled. Дополнительные сведения см. в разделе Постоянное шифрование.For more information, see Always Encrypted. Поддерживаются только главные ключи, хранящиеся в хранилище сертификатов Windows.Only master keys stored in Windows Certificate Store are supported. Для использования параметра -g требуется версия sqlcmd не ниже 13.1.The -g switch requires at least sqlcmd version 13.1. Чтобы определить версию, выполните sqlcmd -?.To determine your version, execute sqlcmd -?.

-G-G
Клиент использует этот переключатель при подключении к базе данных SQL или хранилищу данных SQL, чтобы указать, что проверка подлинности пользователя выполняется с помощью 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. Этот параметр задает переменную скрипта SQLCMDUSEAAD = true программы sqlcmd .This option sets the sqlcmd scripting variable SQLCMDUSEAAD = true. Для использования параметра -G требуется версия sqlcmd не ниже 13.1.The -G switch requires at least sqlcmd version 13.1. Чтобы определить версию, выполните sqlcmd -?.To determine your version, execute sqlcmd -?. Дополнительные сведения см. в статье Подключение к базе данных SQL или хранилищу данных SQL с использованием аутентификации Azure Active Directory.For more information, see Connecting to SQL Database or SQL Data Warehouse By Using Azure Active Directory Authentication. Параметр - не поддерживается с параметром -G.The -A option is not supported with the -G option.

Важно!

Параметр -G применяется только для базы данных SQL Azure и хранилища данных Azure.The -G option only applies to Azure SQL Database and Azure Data Warehouse.

  • Имя пользователя и пароль Azure Active DirectoryAzure Active Directory Username and Password:

    Если вы хотите использовать имя пользователя и пароль Azure Active Directory, можно указать параметр -G , а также использовать имя пользователя и пароль, задав параметры -U и -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 
    

    При этом на сервере формируется следующая строка подключения:This will generate the following connection string in the backend:

     SERVER = Target_DB_or_DW.testsrv.database.windows.net;UID= bob@contoso.com;PWD=MyAADPassword;AUTHENTICATION = ActiveDirectoryPassword 
    
  • Встроенная проверка подлинности Azure Active DirectoryAzure Active Directory Integrated

    Чтобы использовать встроенную проверку подлинности Azure Active Directory, укажите параметр -G без имени пользователя или пароля:For Azure Active Directory Integrated authentication, provide the -G option without a user name or password:

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

    При этом на сервере формируется следующая строка подключения:This will generate the following connection string in the backend:

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

    Примечание

    Параметр -E (Trusted_Connection) нельзя использовать вместе с параметром -G.The -E option (Trusted_Connection) cannot be used along with the -G option).

-H имя_рабочей_станции-H workstation_name
Имя рабочей станции.A workstation name. Этот параметр задает переменную скрипта SQLCMDWORKSTATION программы sqlcmd .This option sets the sqlcmd scripting variable SQLCMDWORKSTATION. Имя рабочей станции заносится в столбец hostname представления каталога sys.sysprocesses и может быть возвращено с помощью хранимой процедуры 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. Если этот параметр не указан, используется текущее имя компьютера.If this option is not specified, the default is the current computer name. Это имя может использоваться для идентификации сеансов работы программы sqlcmd .This name can be used to identify different sqlcmd sessions.

-j выводит на экран необработанные сообщения об ошибках.-j Prints raw error messages to the screen.

-K application_intent-K application_intent
Объявляет тип рабочей нагрузки приложения при соединении с сервером.Declares the application workload type when connecting to a server. Единственным поддерживаемым в данное время значением является ReadOnly.The only currently supported value is ReadOnly. Если параметр -K не указан, то программа sqlcmd не будет поддерживать возможность подключения к вторичной реплике в группе доступности AlwaysOn.If -K is not specified, the sqlcmd utility will not support connectivity to a secondary replica in an Always On availability group. Дополнительные сведения см. в разделе Активные вторичные реплики: вторичные реплики для чтения (группы доступности AlwaysOn).For more information, see Active Secondaries: Readable Secondary Replica (Always On Availability Groups)

-M отработка_отказа_в_сети_с_подсетями-M multisubnet_failover
Всегда указывайте параметр -M при соединении с прослушивателем группы доступности SQL Server или экземпляром отказоустойчивого кластера 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 обеспечивает более быстрое обнаружение активного (в данный момент) сервера и соединение с ним.-M provides for faster detection of and connection to the (currently) active server. Если параметр -M не указан, значит -M отключен.If –M is not specified, -M is off. Дополнительные сведения о [! ВКЛЮЧИТЬssHADR, Создание и Настройка групп доступности (SQL Server), отказоустойчивой кластеризации и всегда групп доступности (SQL Server), и активные вторичные реплики: вторичные реплики для чтения (для групп доступности AlwaysOn).For more information about [!INCLUDEssHADR, 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
С помощью этого переключателя клиент запрашивает шифрованное соединение.This switch is used by the client to request an encrypted connection.

-P пароль-P password
Пароль, задаваемый пользователем.Is a user-specified password. Пароли учитывают регистр.Passwords are case sensitive. Если указан параметр -U, а параметр -P отсутствует и не задана переменная среды SQLCMDPASSWORD, программа sqlcmd запрашивает пароль у пользователя.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. Чтобы указать пустой пароль (не рекомендуется), используйте -P "".To specify a null password (not recommended) use -P "". И никогда не забывайте следующее:And remember to always:

Выбирайте надежные паролиUse a strong password!!

Запрос на ввод пароля выводится на консоль следующим образом: Password:.The password prompt is displayed by printing the password prompt to the console, as follows: Password:

Вводимые пользователем данные на экране не отображаются,User input is hidden. то есть символы не выводятся и курсор остается на месте.This means that nothing is displayed and the cursor stays in position.

Переменная среды SQLCMDPASSWORD позволяет задать значение пароля по умолчанию для текущего сеанса.The SQLCMDPASSWORD environment variable lets you set a default password for the current session. Таким образом, нет необходимости указывать пароль в пакетных файлах.Therefore, passwords do not have to be hard-coded into batch files.

В следующем примере сначала из командной строки устанавливается переменная SQLCMDPASSWORD, а затем производится вызов программы sqlcmd .The following example first sets the SQLCMDPASSWORD variable at the command prompt and then accesses the sqlcmd utility. В командной строке введите:At the command prompt, type:

SET SQLCMDPASSWORD= p@a$$w0rd
В командной строке введите:At the following command prompt, type:

sqlcmd

Если обнаружено неверное сочетание имени пользователя и пароля, выдается сообщение об ошибке.If the user name and password combination is incorrect, an error message is generated.

ПРИМЕЧАНИЕ.NOTE! Переменная среды OSQLPASSWORD была сохранена в целях обратной совместимости.The OSQLPASSWORD environment variable was kept for backward compatibility. Переменная среды SQLCMDPASSWORD имеет больший приоритет, чем переменная среды OSQLPASSWORD. Это означает, что программы sqlcmd и osql могут использоваться одновременно, не мешая друг другу, и скрипты прежних версий не перестанут работать.The SQLCMDPASSWORD environment variable takes precedence over the OSQLPASSWORD 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.

Если параметр -P указан одновременно с параметром -E , выдается сообщение об ошибке.If the -P option is used with the -E option, an error message is generated.

Если после параметра -P указано более одного аргумента, выдается сообщение об ошибке, и программа завершает работу.If the -P option is followed by more than one argument, an error message is generated and the program exits.

-S [протокола:]сервера[\имя_экземпляра] [, **порт]-S** [protocol:]server[\instance_name][,port]
Указывает экземпляр SQL Server, к которому выполняется подключение.Specifies the instance of SQL Server to which to connect. Задает переменную скрипта SQLCMDSERVER программы sqlcmd .It sets the sqlcmd scripting variable SQLCMDSERVER.

Укажите значение имя_сервера, чтобы подключиться к экземпляру SQL Server по умолчанию на этом сервере.Specify server_name to connect to the default instance of SQL Server on that server computer. Укажите имя_сервера [ \имя_экземпляра ], чтобы подключиться к именованному экземпляру SQL Server на этом сервере.Specify server_name [ \instance_name ] to connect to a named instance of SQL Server on that server computer. Если сервер не указан, программа sqlcmd выполняет подключение к экземпляру SQL Server по умолчанию на локальном компьютере.If no server computer is specified, sqlcmd connects to the default instance of SQL Server on the local computer. Этот параметр обязателен при запуске программы sqlcmd с удаленного компьютера в сети.This option is required when you execute sqlcmd from a remote computer on the network.

Параметрпротокол может иметь значение tcp (TCP/IP), lpc (общая память) или np (именованные каналы).protocol can be tcp (TCP/IP), lpc (shared memory), or np (named pipes).

Если значение имя_сервера [ \имя_экземпляра ] при запуске программы sqlcmd не указано, SQL Server проверяет наличие переменной среды 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.

Примечание

Переменная среды OSQLSERVER была сохранена в целях обратной совместимости.The OSQLSERVER environment variable has been kept for backward compatibility. Переменная среды SQLCMDSERVER имеет больший приоритет, чем переменная среды OSQLSERVER. Это означает, что программы sqlcmd и osql могут применяться одновременно, не мешая друг другу, и скрипты прежних версий не перестанут работать.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 идентификатор_входа-U login_id
Является именем для входа или именем пользователя автономной базы данных.Is the login name or contained database user name. Для пользователей автономной базы данных требуется указать параметр имени базы данных (-d).For contained database users you must provide the database name option (-d).

Примечание

В целях обратной совместимости доступна переменная среды OSQLUSER.The OSQLUSER environment variable is available for backward compatibility. Переменная среды SQLCMDUSER имеет больший приоритет, чем OSQLUSER.The SQLCMDUSER environment variable takes precedence over the OSQLUSER environment variable. То есть программы sqlcmd и osql могут применяться одновременно, не мешая друг другу.This means that sqlcmd and osql can be used next to each other without interference. Кроме того, это означает, что существующие скрипты osql не перестанут работать.It also means that existing osql scripts will continue to work.

Если не указан ни параметр -U, ни параметр -P, программа sqlcmd пытается подключиться с помощью режима проверки подлинности Microsoft Windows.If neither the -U option nor the -P option is specified, sqlcmd tries to connect by using Microsoft Windows Authentication mode. При этом используется учетная запись пользователя Windows, который запустил программу sqlcmd.Authentication is based on the Windows account of the user who is running sqlcmd.

Если параметры -U и -E (описаны ниже в этом разделе) указаны одновременно, выдается сообщение об ошибке.If the -U option is used with the -E option (described later in this topic), an error message is generated. Если после параметра -U указано более одного аргумента, выдается сообщение об ошибке и программа завершает работу.If the –U option is followed by more than one argument, an error message is generated and the program exits.

-z новый_пароль-z new_password
Сменить пароль:Change password:

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

-Z новый_пароль-Z new_password
Измените пароль и выйти:Change password and exit:

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

Параметры ввода-выводаInput/Output Options
-f кодовая_страница | i:кодовая_страница[,o:кодовая_страница] | o:кодовая_страница[,i:* кодовая_страница]-f* codepage | i:codepage[,o:codepage] | o:codepage[,i:* codepage*]
Задает входные и выходные кодовые страницы.Specifies the input and output code pages. Номер кодовой страницы — это числовое значение, которое определяет установленную кодовую страницу Windows.The codepage number is a numeric value that specifies an installed Windows code page.

Правила преобразования кодовых страниц:Code-page conversion rules:

  • Если кодовые страницы не заданы, программа sqlcmd использует текущую кодовую страницу как для входных, так и для выходных файлов. Для входного файла в формате Юникод преобразование не требуется.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 автоматически распознает входные файлы в Юникоде как с прямым, так и с обратным порядком байтов.sqlcmd automatically recognizes both big-endian and little-endian Unicode input files. Если задан параметр -u , выходные данные всегда будут в Юникоде с прямым порядком байтов.If the -u option has been specified, the output will always be little-endian Unicode.

  • Если выходной файл не задан, то выходные данные будут иметь кодовую страницу консоли.If no output file is specified, the output code page will be the console code page. Это обеспечивает правильное отображение данных на консоли.This enables the output to be displayed correctly on the console.

  • Предполагается, что все входные файлы имеют одинаковую кодовую страницу.Multiple input files are assumed to be of the same code page. Входные файлы в Юникоде и не в Юникоде можно обрабатывать вместе.Unicode and non-Unicode input files can be mixed.

    Чтобы проверить кодовую страницу Cmd.exe, введите в командной строке команду chcp .Enter chcp at the command prompt to verify the code page of Cmd.exe.

    -i входной_файл[, *** input_file2*...]-i** input_file[,input_file2...]
    Указывает файл, содержащий пакет инструкций или хранимых процедур SQL.Identifies the file that contains a batch of SQL statements or stored procedures. Можно указать несколько файлов, которые будут считываться и обрабатываться в указанном порядке.Multiple files may be specified that will be read and processed in order. Не разделяйте имена файлов пробелами.Do not use any spaces between file names. Сначала программаsqlcmd проверяет наличие всех указанных файлов.sqlcmd will first check to see whether all the specified files exist. Если хотя бы один из файлов не найден, программа sqlcmd завершает работу.If one or more files do not exist, sqlcmd will exit. Параметры -i и -Q/-q являются взаимоисключающими.The -i and the -Q/-q options are mutually exclusive.

    Примеры пути:Path examples:

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

Пути к файлам, содержащие пробелы, необходимо заключать в кавычки.File paths that contain spaces must be enclosed in quotation marks.

Этот параметр можно использовать многократно: -iвходной_файл -II входной_файл.This option may be used more than once: -iinput_file -II input_file.

-o output_file-o output_file
Указывает файл, получающий выходные данные программы sqlcmd.Identifies the file that receives output from sqlcmd.

Если указан параметр -u , выходной_файл сохраняется в Юникоде.If -u is specified, the output_file is stored in Unicode format. Если указано недопустимое имя файла, программа sqlcmd выдает сообщение об ошибке и завершает работу.If the file name is not valid, an error message is generated, and sqlcmd exits. Программаsqlcmd не поддерживает одновременную запись нескольких процессов sqlcmd в один файл.sqlcmd does not support concurrent writing of multiple sqlcmd processes to the same file. В этом случае выводимые в файл данные будут неверны или повреждены.The file output will be corrupted or incorrect. Дополнительные сведения о форматах файлов см. в описании параметра -f .See the -f switch for more information about file formats. Если этот файл не существует, он будет создан.This file will be created if it does not exist. Файл от предыдущего сеанса программы sqlcmd с тем же именем будет перезаписан.A file of the same name from a prior sqlcmd session will be overwritten. Указанный здесь файл не является файлом stdout .The file specified here is not the stdout file. Если указан файл stdout , то этот файл не будет использоваться.If a stdout file is specified this file will not be used.

Примеры пути:Path examples:

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

Пути к файлам, содержащие пробелы, необходимо заключать в кавычки.File paths that contain spaces must be enclosed in quotation marks.

-r[0 | 1]-r[0 | 1]
Перенаправляет вывод сообщений об ошибке на экран (stderr).Redirects the error message output to the screen (stderr). Если параметр не указан или если указано значение 0, происходит перенаправление только сообщений об ошибках с уровнем серьезности 11 и выше.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. Если указать 1, то происходит перенаправление всех сообщений об ошибках (включая команду PRINT).If you specify 1, all error message output including PRINT is redirected. Не имеет эффекта, если указан параметр -o.Has no effect if you use -o. По умолчанию сообщения отправляются в stdout.By default, messages are sent to stdout.

-R-R
Указывает sqlcmd, что локализация в столбцах числовых и денежных данных, значений даты и времени, полученных из SQL Server, должна выполняться с учетом языка и региональных параметров клиента.Causes sqlcmd to localize numeric, currency, date, and time columns retrieved from SQL Server based on the client’s locale. По умолчанию эти столбцы отображаются с использованием региональных параметров сервера.By default, these columns are displayed using the server’s regional settings.

-u-u
Указывает, что выходной_файл хранится в Юникоде независимо от формата файла входной_файл.Specifies that output_file is stored in Unicode format, regardless of the format of input_file.

Параметры выполнения запросовQuery Execution Options
-e-e
Выдает входные скрипты на стандартное устройство вывода (stdout).Writes input scripts to the standard output device (stdout).

-I-I
Устанавливает значение ON для параметра соединения SET QUOTED_IDENTIFIER.Sets the SET QUOTED_IDENTIFIER connection option to ON. По умолчанию этот параметр имеет значение OFF.By default, it is set to OFF. Дополнительные сведения см. в разделе SET QUOTED_IDENTIFIER (Transact-SQL).For more information, see SET QUOTED_IDENTIFIER (Transact-SQL).

-q" запрос_командной_строки "-q" cmdline query "
Выполняет запрос при запуске программы sqlcmd , но выход из программы sqlcmd по его завершении не производится.Executes a query when sqlcmd starts, but does not exit sqlcmd when the query has finished running. Может быть выполнено несколько запросов, разделенных точкой с запятой.Multiple-semicolon-delimited queries can be executed. Заключайте запрос в кавычки, как показано в следующем примере.Use quotation marks around the query, as shown in the following example.

В командной строке введите: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;"

Важно!

Не используйте в запросе признак конца GO.Do not use the GO terminator in the query.

Если вместе с этим параметром указан параметр -b , программа sqlcmd завершает работу при возникновении ошибки.If -b is specified together with this option, sqlcmd exits on error. Параметр -b описан ранее в этом разделе.-b is described later in this topic.

-Q" запрос_командной_строки "-Q" cmdline query "
Выполняет запрос при запуске программы sqlcmd и немедленно завершает работу sqlcmd.Executes a query when sqlcmd starts and then immediately exits sqlcmd. Может быть выполнено несколько запросов, разделенных точкой с запятой.Multiple-semicolon-delimited queries can be executed.

Заключайте запрос в кавычки, как показано в следующем примере.Use quotation marks around the query, as shown in the following example.

В командной строке введите: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;"

Важно!

Не используйте в запросе признак конца GO.Do not use the GO terminator in the query.

Если вместе с этим параметром указан параметр -b , программа sqlcmd завершает работу при возникновении ошибки.If -b is specified together with this option, sqlcmd exits on error. Параметр -b описан ранее в этом разделе.-b is described later in this topic.

-t время_ожидания_запроса-t query_timeout
Задает число секунд времени ожидания команды (или инструкции SQL). Этот параметр задает переменную скрипта SQLCMDSTATTIMEOUT программы sqlcmd .Specifies the number of seconds before a command (or SQL statement) times out. This option sets the sqlcmd scripting variable SQLCMDSTATTIMEOUT. Если значение время_ожидания не указывается, то команда имеет неограниченное время ожидания. Значение время_ожиданиязапроса должно быть числом в диапазоне от 1 до 65534.If a time_out value is not specified, the command does not time out. The querytime_out must be a number between 1 and 65534. Если указанное значение не является числом или выходит за пределы указанного диапазона, sqlcmd выдает сообщение об ошибке.If the value supplied is not numeric or does not fall into that range, sqlcmd generates an error message.

Примечание

Фактическое время ожидания может отличаться от указанного значения время_ожидания на несколько секунд.The actual time out value may vary from the specified time_out value by several seconds.

-vvar = значение[ var = значение...]-vvar = value[ var = value...]
Создает переменную скрипта sqlcmd, которая может быть использована в скрипте sqlcmd .Creates a sqlcmdscripting variable that can be used in a sqlcmd script. Если значение содержит пробелы, заключите его в кавычки.Enclose the value in quotation marks if the value contains spaces. Можно определить несколько значений var="значения".You can specify multiple var="values" values. Если в каком-либо из указанных значений обнаружена ошибка, программа sqlcmd выдает сообщение и завершает работу.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
Указывает, что программа sqlcmd не должна обрабатывать переменные скрипта.Causes sqlcmd to ignore scripting variables. Это может отказаться полезным в случае, если в скрипте содержится много инструкций INSERT, которые могут содержать строки, имеющие тот же формат, что и обычные переменные, т. е. "$(имя_переменной)".This 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).

Параметры форматированияFormatting Options
-h заголовки-h headers
Указывает количество строк для печати между заголовками столбцов.Specifies the number of rows to print between the column headings. По умолчанию заголовки печатаются один раз для каждого набора результатов запроса.The default is to print headings one time for each set of query results. Этот параметр задает переменную скрипта SQLCMDHEADERS программы sqlcmd .This option sets the sqlcmd scripting variable SQLCMDHEADERS. Используйте значение -1 для отмены печати заголовков.Use -1 to specify that headers must not be printed. Любое недопустимое значение приводит к тому, что программа sqlcmd выдает сообщение об ошибке и завершает работу.Any value that is not valid causes sqlcmd to generate an error message and then exit.

-k [1 | 2]-k [1 | 2]
Удаляет из выходных данных все управляющие символы, такие как символы табуляции и символы новой строки.Removes all control characters, such as tabs and new line characters from the output. Это сохраняет формат столбцов при возврате данных.This preserves column formatting when data is returned. При указании значения 1 управляющие символы заменяются одиночным пробелом.If 1 is specified, the control characters are replaced by a single space. Если указано значение 2, все последовательные управляющие символы заменяются одиночным пробелом.If 2 is specified, consecutive control characters are replaced by a single space. Параметр -k аналогичен параметру -k1.-k is the same as -k1.

-s разделитель_столбцов-s col_separator
Задает символ-разделитель столбцов.Specifies the column-separator character. Значением по умолчанию является пробел.The default is a blank space. Этот параметр задает переменную скрипта SQLCMDCOLSEP программы sqlcmd .This option sets the sqlcmd scripting variable SQLCMDCOLSEP. Чтобы использовать символы, имеющие специальное значение для операционной системы, такие как амперсанд (&) или точка с запятой (;), заключайте этот символ в кавычки (").To use characters that have special meaning to the operating system such as the ampersand (&), or semicolon (;), enclose the character in quotation marks ("). Разделитель столбцов может быть любым 8-разрядным символом.The column separator can be any 8-bit character.

-w ширина_столбцов-w column_width
Задает ширину экрана для вывода.Specifies the screen width for output. Этот параметр задает переменную скрипта SQLCMDCOLWIDTH программы sqlcmd .This option sets the sqlcmd scripting variable SQLCMDCOLWIDTH. Ширина столбца должна находиться в диапазоне от 8 до 65 536.The column width must be a number greater than 8 and less than 65536. Если указанное значение ширины столбца выходит за пределы заданного диапазона, программа sqlcmd выдает сообщение об ошибке.If the specified column width does not fall into that range, sqlcmd generates and error message. Ширина по умолчанию составляет 80 символов.The default width is 80 characters. Когда строка вывода превышает указанную ширину столбца, вывод переносится на следующую строку.When an output line exceeds the specified column width, it wraps on to the next line.

-W-W
Этот параметр удаляет конечные пробелы в столбце.This option removes trailing spaces from a column. При подготовке данных для экспорта в другое приложение указывайте этот параметр вместе с параметром -s .Use this option together with the -s option when preparing data that is to be exported to another application. Не может указываться одновременно с параметром -y или -Y .Cannot be used with the -y or -Y options.

-y ширина_отображения_типа_переменной_длины-y variable_length_type_display_width
Задает переменную скрипта sqlcmd SQLCMDMAXVARTYPEWIDTH.Sets the sqlcmd scripting variable SQLCMDMAXVARTYPEWIDTH. Значение по умолчанию равно 256.The default is 256. Ограничивает число символов, возвращаемых для больших типов данных переменной длины: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)

  • xml;xml

  • UDT (пользовательский тип)UDT (user-defined data types)

  • texttext

  • ntextntext

  • imageimage

Примечание

Определяемые пользователем типы могут иметь фиксированную длину в зависимости от реализации.UDTs can be of fixed length depending on the implementation. Если фиксированная длина определяемого пользователем типа короче, чем значение переменной ширина_отображения, то значение типа возвращается без изменений.If this length of a fixed length UDT is shorter that display_width, the value of the UDT returned is not affected. Однако если длина превышает значение ширина_отображения, то производится усечение выходных данных.However, if the length is longer than display_width, the output is truncated.

Важно!

Используйте параметр -y 0 с особой осторожностью, поскольку при большом объеме возвращаемых данных может значительно снизиться производительность сервера и сети.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 ширина_отображения_типа_фиксированной_длины-Y fixed_length_type_display_width
Задает переменную скрипта sqlcmd SQLCMDMAXFIXEDTYPEWIDTH.Sets the sqlcmd scripting variable SQLCMDMAXFIXEDTYPEWIDTH. Значение по умолчанию 0 (неограниченно).The default is 0 (unlimited). Ограничивает число символов, возвращаемых для следующих типов данных:Limits the number of characters that are returned for the following data types:

  • char( n ), где 1<=n<=8000char( n ), where 1<=n<=8000

  • nchar(n n ), где 1<=n<=4000nchar(n n ), where 1<=n<=4000

  • varchar(n n ), где 1<=n<=8000varchar(n n ), where 1<=n<=8000

  • nvarchar(n n ), где 1<=n<=4000nvarchar(n n ), where 1<=n<=4000

  • varbinary(n n ), где 1<=n<=4000varbinary(n n ), where 1<=n<=4000

  • variantvariant

    Параметры отчетов об ошибкахError Reporting Options
    -b-b
    Указывает, что в случае ошибки программа sqlcmd завершает работу и возвращает значение DOS ERRORLEVEL.Specifies that sqlcmd exits and returns a DOS ERRORLEVEL value when an error occurs. Значение, возвращаемое в переменную DOS ERRORLEVEL, равно 1, если сообщение об ошибке SQL Server имеет степень серьезности выше 10. В противном случае возвращаемое значение равно 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. Если параметр -V был указан вместе с параметром -b, программа sqlcmd не выдает сообщение об ошибке при степени серьезности ниже значения, заданного параметром -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. Пакетные файлы командной строки могут быть использованы для проверки значения ERRORLEVEL и для обработки ошибки соответствующим образом.Command prompt batch files can test the value of ERRORLEVEL and handle the error appropriately. Программаsqlcmd не выдает ошибки при степени серьезности 10 (информационные сообщения).sqlcmd does not report errors for severity level 10 (informational messages).

    Если скрипт программы sqlcmd содержит неверный комментарий, синтаксическую ошибку или обнаружено отсутствие переменной скрипта, то возвращается значение ERRORLEVEL, равное 1.If the sqlcmd script contains an incorrect comment, syntax error, or is missing a scripting variable, ERRORLEVEL returned is 1.

    -m уровень_ошибки-m error_level
    Управляет сообщениями об ошибках, отправляемыми в stdout.Controls which error messages are sent to stdout. Передаются сообщения со степенью серьезности, которая больше заданной или равна ей.Messages that have a severity level greater than or equal to this level are sent. Если это значение равно -1, передаются все сообщения, в том числе информационные.When this value is set to -1, all messages including informational messages, are sent. Пробелы между параметрами -m и -1не допускаются.Spaces are not allowed between the -m and -1. Например, -m-1 является допустимым, а -m-1 — нет.For example, -m-1 is valid, and -m -1 is not.

    Кроме того, этот параметр задает переменную скрипта SQLCMDERRORLEVEL программы sqlcmd .This option also sets the sqlcmd scripting variable SQLCMDERRORLEVEL. По умолчанию ее значение равно 0.This variable has a default of 0.

    -V степень_серьезности_ошибки-V error_severity_level
    Управляет степенью серьезности, используемой для задания переменной ERRORLEVEL.Controls the severity level that is used to set the ERRORLEVEL variable. Сообщения об ошибках со степенями серьезности, большими этого значения или равными ему, устанавливают переменную ERRORLEVEL.Error messages that have severity levels greater than or equal to this value set ERRORLEVEL. Значения меньше 0 сообщаются как 0.Values that are less than 0 are reported as 0. Пакетные файлы и CMD-файлы могут быть использованы для проверки значения переменной ERRORLEVEL.Batch and CMD files can be used to test the value of the ERRORLEVEL variable.

    Прочие параметрыMiscellaneous Options
    -a размер_пакета-a packet_size
    Запрашивает пакет другого размера.Requests a packet of a different size. Этот параметр задает переменную скрипта SQLCMDPACKETSIZE программы sqlcmd .This option sets the sqlcmd scripting variable SQLCMDPACKETSIZE. Значениеразмер_пакета должно находиться в диапазоне от 512 до 32767.packet_size must be a value between 512 and 32767. Значение по умолчанию = 4096.The default = 4096. Увеличение размера пакета повышает производительность выполнения скриптов, содержащих большое количество инструкций SQL между командами GO.A larger packet size can enhance performance for execution of scripts that have lots of SQL statements between GO commands. Можно запросить больший размер пакета.You can request a larger packet size. Но в случае отклонения запроса программа sqlcmd использует размер пакета по умолчанию для сервера.However, if the request is denied, sqlcmd uses the server default for packet size.

    -c признак_конца_пакета-c batch_terminator
    Задает признак конца пакета.Specifies the batch terminator. По умолчанию команды завершаются и отправляются в SQL Server при вводе слова GO в отдельной строке.By default, commands are terminated and sent to SQL Server by typing the word "GO" on a line by itself. При сбросе признака конца пакета не используйте зарезервированные ключевые слова или символы Transact-SQL, которые имеют специальное значение для операционной системы, даже если перед ними присутствует символ обратной косой черты.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]
    Выводит список локально настроенных серверов и имена серверов, осуществляющих передачу данных в сети.Lists the locally configured server computers, and the names of the server computers that are broadcasting on the network. Этот параметр не может использоваться в сочетании с другими параметрами.This parameter cannot be used in combination with other parameters. Максимальное число компьютеров серверов, которое можно указать, составляет 3 000.The maximum number of server computers that can be listed is 3000. При усечении списка серверов в связи с нехваткой размера буфера выдается предупреждающее сообщение.If the server list is truncated because of the size of the buffer a warning message is displayed.

Примечание

Из-за особенностей передачи широковещательных сообщений по сети программа sqlcmd не всегда своевременно получает ответ от всех серверов.Because of the nature of broadcasting on networks, sqlcmd may not receive a timely response from all servers. Поэтому возвращаемый список серверов от вызова к вызову может различаться.Therefore, the list of servers returned may vary for each invocation of this option.

Если указан необязательный параметр c , то выводимые данные будут отображаться без строки заголовка «Серверы», а строка каждого сервера будет указываться без начальных пробелов.If the optional parameter c is specified, the output appears without the Servers: header line and each server line is listed without leading spaces. Это называется «чистым выводом».This is referred to as clean output. Чистый выход улучшает производительность обработки языков скриптов.Clean output improves the processing performance of scripting languages.

-p[1]-p[1]
Выводит на печать статистику производительности для каждого результирующего набора.Prints performance statistics for every result set. Далее представлен пример формата для статистики производительности:The following 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.)

Где:Where:

x = количество транзакций, обработанных SQL Server.x = Number of transactions that are processed by SQL Server .

t1 = Общее время обработки всех транзакций.t1 = Total time for all transactions.

t2 = среднее время обработки одной транзакции.t2 = Average time for a single transaction.

t3 = среднее количество транзакций, обрабатываемых в секунду.t3 = Average number of transactions per second.

Все значения времени приведены в миллисекундах.All times are in milliseconds.

Если указывается необязательный параметр 1 , статистика выводится в формате со столбцами, разделенными двоеточиями, и может быть легко импортирована в электронную таблицу или обработана скриптом.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.

Если необязательный параметр имеет любое значение, кроме 1, выводится сообщение об ошибке и программа sqlcmd завершает работу.If the optional parameter is any value other than 1, an error is generated and sqlcmd exits.

-X[1]-X[1]
Отключает команды, которые могут поставить под угрозу безопасность системы при выполнении программы sqlcmd из пакетного файла.Disables commands that might compromise system security when sqlcmd is executed from a batch file. Отключенные команды по-прежнему распознаются. Программа sqlcmd выдает предупреждение и продолжает работу.The disabled commands are still recognized; sqlcmd issues a warning message and continues. Если необязательный параметр равен 1 , программа sqlcmd выдает сообщение об ошибке и завершает работу.If the optional parameter 1 is specified, sqlcmd generates an error message and then exits. При использовании параметра -X отключаются следующие команды:The following commands are disabled when the -X option is used:

  • EDED

  • !!!! командаcommand

    Указание параметра -X блокирует передачу переменных среды программе sqlcmd.If the -X option is specified, it prevents environment variables from being passed on to sqlcmd. Он также препятствует выполнению скрипта запуска, указанного с помощью переменной скрипта SQLCMDINI.It also prevents the startup script specified by using the SQLCMDINI scripting variable from being executed. Дополнительные сведения об использовании переменных скрипта sqlcmd см. в разделе Использование программы sqlcmd с переменными скрипта.For more information about sqlcmd scripting variables, see Use sqlcmd with Scripting Variables.

    -?-?
    Отображает версию программы sqlcmd и сводку по синтаксису параметров для sqlcmd .Displays the version of sqlcmd and a syntax summary of sqlcmd options.

RemarksRemarks

Параметры не обязательно должны указываться в том порядке, в котором они приведены в разделе описания синтаксиса.Options do not have to be used in the order shown in the syntax section.

Если возвращается несколько результатов, программа sqlcmd выводит между результирующими наборами в пакете пустую строку.When multiple results are returned, sqlcmd prints a blank line between each result set in a batch. Кроме того, сообщение " <x> rows affected не выдается, если оно не соответствует выполненной инструкции.In addition, the <x> rows affected message does not appear when it does not apply to the statement executed.

Для работы с программой sqlcmd в интерактивном режиме введите в командной строке sqlcmd , указав любой из параметров, описанных ранее в этой статье.To use sqlcmd interactively, type sqlcmd at the command prompt with any one or more of the options described earlier in this topic. Дополнительные сведения см. в статье Использование программы sqlcmdFor more information, see Use the sqlcmd Utility

Примечание

Параметры -L, -Q, -Z или -i приводят к завершению программы sqlcmd после выполнения.The options -L, -Q, -Z or -i cause sqlcmd to exit after execution.

Суммарная длина командной строки программы sqlcmd в командной среде (Cmd.exe), включая все аргументы и расширение переменных, соответствует длине для программы 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.

Приоритет переменных (от низкого к высокому)Variable Precedence (Low to High)

  1. Переменные среды системного уровня.System-level environmental variables.

  2. Переменные среды пользовательского уровня.User-level environmental variables

  3. Командная оболочка (SET X=Y), заданная в командной строке перед запуском программы 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

Примечание

Чтобы просмотреть переменные среды, на панели управленияоткройте компонент Системаи перейдите на вкладку Дополнительно .To view the environmental variables, in Control Panel, open System, and then click the Advanced tab.

Переменные скрипта sqlcmdsqlcmd Scripting Variables

ПеременнаяVariable Связанный параметрRelated switch Чтение-записьR/W По умолчаниюDefault
SQLCMDUSERSQLCMDUSER -U-U ЧтениеR """"
SQLCMDPASSWORDSQLCMDPASSWORD -P-P -- """"
SQLCMDSERVERSQLCMDSERVER -S-S ЧтениеR "DefaultLocalInstance""DefaultLocalInstance"
SQLCMDWORKSTATIONSQLCMDWORKSTATION -H-H ЧтениеR "ComputerName""ComputerName"
SQLCMDDBNAMESQLCMDDBNAME -d-d ЧтениеR """"
SQLCMDLOGINTIMEOUTSQLCMDLOGINTIMEOUT -l-l Чтение-записьR/W "8" (секунд)"8" (seconds)
SQLCMDSTATTIMEOUTSQLCMDSTATTIMEOUT -t-t Чтение-записьR/W "0" = неограниченное время ожидания"0" = wait indefinitely
SQLCMDHEADERSSQLCMDHEADERS -H-h Чтение-записьR/W "0""0"
SQLCMDCOLSEPSQLCMDCOLSEP -S-s Чтение-записьR/W " "" "
SQLCMDCOLWIDTHSQLCMDCOLWIDTH -w-w Чтение-записьR/W "0""0"
SQLCMDPACKETSIZESQLCMDPACKETSIZE -A-a ЧтениеR "4096""4096"
SQLCMDERRORLEVELSQLCMDERRORLEVEL -M-m Чтение-записьR/W 00
SQLCMDMAXVARTYPEWIDTHSQLCMDMAXVARTYPEWIDTH -y-y Чтение-записьR/W «256»"256"
SQLCMDMAXFIXEDTYPEWIDTHSQLCMDMAXFIXEDTYPEWIDTH -y-Y Чтение-записьR/W "0" = неограниченное время ожидания"0" = unlimited
SQLCMDEDITORSQLCMDEDITOR Чтение-записьR/W "edit.com""edit.com"
SQLCMDINISQLCMDINI ЧтениеR """"
SQLCMDUSEAADSQLCMDUSEAAD - G-G Чтение-записьR/W """"

Значения переменных SQLCMDUSER, SQLCMDPASSWORD и SQLCMDSERVER задаются при использовании команды :Connect .SQLCMDUSER, SQLCMDPASSWORD and SQLCMDSERVER are set when :Connect is used.

Пометка «Чтение» означает, что значение может быть задано только один раз в процессе инициализации программы.R indicates the value can only be set one time during program initialization.

Пометка "Чтение/запись" означает, что переменная может быть изменена командой setvar и все последующие команды будут использовать новое значение.R/W indicates that the value can be modified by using the setvar command and subsequent commands will be influenced by the new value.

Команды sqlcmdsqlcmd Commands

В дополнение к инструкциям Transact-SQL в программе sqlcmd доступны следующие команды:In addition to Transact-SQL statements within sqlcmd, the following commands are also available:

GO [число]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

При использовании команд программы sqlcmd следует учитывать следующие особенности.Be aware of the following when you use sqlcmd commands:

  • Все команды sqlcmd , за исключением GO, должны предваряться двоеточием (:).All sqlcmd commands, except GO, must be prefixed by a colon (:).

    Важно!

    Для поддержки обратной совместимости с существующими скриптами osql , некоторые команды будут распознаваться без двоеточия.To maintain backward compatibility with existing osql scripts, some of the commands will be recognized without the colon. На это указывают символы[:].This is indicated by the [:].

  • Командыsqlcmd распознаются только в случае, если они введены в начале строки.sqlcmd commands are recognized only if they appear at the start of a line.

  • Во всех командах sqlcmd регистр символов не учитывается.All sqlcmd commands are case insensitive.

  • Каждая команда должна находиться на отдельной строке.Each command must be on a separate line. За командой не должна следовать инструкция Transact-SQL или другая команда.A command cannot be followed by a Transact-SQL statement or another command.

  • Команды выполняются немедленно.Commands are executed immediately. Они не помещаются в буфер выполнения, как инструкции Transact-SQL.They are not put in the execution buffer as Transact-SQL statements are.

    Команды измененияEditing Commands
    [:] ED[:] ED
    Производит запуск текстового редактора.Starts the text editor. Этот редактор может использоваться для изменения текущего пакета Transact-SQL или последнего выполненного пакета.This editor can be used to edit the current Transact-SQL batch, or the last executed batch. Для изменения последнего выполненного пакета необходимо ввести команду ED сразу после выполнения последнего пакета.To edit the last executed batch, the ED command must be typed immediately after the last batch has completed execution.

    Текстовый редактор определяется переменной среды SQLCMDEDITOR.The text editor is defined by the SQLCMDEDITOR environment variable. Редактором по умолчанию является «Edit».The default editor is 'Edit'. Чтобы изменить редактор, установите переменную среды SQLCMDEDITOR.To change the editor, set the SQLCMDEDITOR environment variable. Например, чтобы установить в качестве редактора Блокнот (Майкрософт), в командной строке введите:For example, to set the editor to Microsoft Notepad, at the command prompt, type:

    SET SQLCMDEDITOR=notepad

    [:] RESET[:] RESET
    Очистка кэша инструкций.Clears the statement cache.

    :List:List
    Вывод содержимого кэша инструкций.Prints the content of the statement cache.

    ПеременныеVariables
    : Setvar < var> [ »значение» ]:Setvar <var> [ "value" ]
    Определяет переменные скрипта sqlcmd .Defines sqlcmd scripting variables. Переменные скрипта имеют следующий формат: $(VARNAME).Scripting variables have the following format: $(VARNAME).

    Имена переменных не зависят от регистра символов.Variable names are case insensitive.

    Переменные скрипта могут быть установлены следующими способами.Scripting variables can be set in the following ways:

  • Неявно, с помощью параметра командной строки.Implicitly using a command-line option. Например, параметр -l задает переменную скрипта SQLCMDLOGINTIMEOUT программы sqlcmd .For example, the -l option sets the SQLCMDLOGINTIMEOUT sqlcmd variable.

  • Явным образом, с помощью команды :Setvar .Explicitly by using the :Setvar command.

  • Путем задания переменной среды до запуска программы sqlcmd.By defining an environment variable before you run sqlcmd.

Примечание

Параметр -X предотвращает передачу переменных среды программе sqlcmd.The -X option prevents environment variables from being passed on to sqlcmd.

Если переменная, определенная с использованием :Setvar и переменной окружения, имеет одно и то же имя, переменная, определенная с помощью :Setvar имеет преимущество.If a variable defined by using :Setvar and an environment variable have the same name, the variable defined by using :Setvar takes precedence.

Имена переменных не должны содержать пробелы.Variable names must not contain blank space characters.

Имена переменных не могут иметь тот же формат, что и выражение переменной: $(переменная).Variable names cannot have the same form as a variable expression, such as $(var).

Если строковое значение переменной скрипта содержит пробелы, то заключите значение в кавычки.If the string value of the scripting variable contains blank spaces, enclose the value in quotation marks. Если значение для переменной скрипта не указано, переменная скрипта удаляется.If a value for a scripting variable is not specified, the scripting variable is dropped.

:Listvar:Listvar
Список переменных скрипта, заданных в настоящее время.Displays a list of the scripting variables that are currently set.

Примечание

Отображаются только переменные, заданные программой sqlcmdи командой :Setvar .Only scripting variables that are set by sqlcmd, and those that are set using the :Setvar command will be displayed.

Команды выводаOutput Commands
:Error :Error
< имя_файла >| STDERR|STDOUT< filename >| STDERR|STDOUT
Перенаправляет вывод всех сообщений об ошибках в файл, указываемый параметром имя_файла, в поток stderr или stdout.Redirect all error output to the file specified by file name, to stderr or to stdout. Команда Error может встречаться в скрипте несколько раз.The Error command can appear multiple times in a script. По умолчанию вывод об ошибках направляется в STDERR.By default, error output is sent to stderr.

имя_файлаfile name
Создает и открывает файл, который принимает выходные данные.Creates and opens a file that will receive the output. Если файл уже существует, он будет усечен до 0 байт.If the file already exists, it will be truncated to zero bytes. Если файл недоступен по причине нехватки разрешений или по другим причинам, вывод перенаправляется не в него, а в последнее указанное назначение или в назначение по умолчанию.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
Перенаправляет вывод сообщений об ошибках в поток stderr .Switches error output to the stderr stream. Если было выполнено перенаправление, то адресат, которому был перенаправлен поток, получит выход ошибок.If this has been redirected, the target to which the stream has been redirected will receive the error output.

STDOUTSTDOUT
Перенаправляет выход ошибок в поток stdout .Switches error output to the stdout stream. Если было выполнено перенаправление, то адресат, которому был перенаправлен поток, получит выход ошибок.If this has been redirected, the target to which the stream has been redirected will receive the error output.

:Out < имя_файла >| STDERR| STDOUT:Out < filename >| STDERR| STDOUT
Создает и переадресовывает все результаты запроса в файл, указываемый параметром имя_файла, в stderr или stdout.Creates and redirects all query results to the file specified by file name, to stderr or to stdout. По умолчанию вывод направляется в stdout.By default, output is sent to stdout. Если файл уже существует, он будет усечен до 0 байт.If the file already exists, it will be truncated to zero bytes. Команда Out может встречаться в скрипте несколько раз.The Out command can appear multiple times in a script.

:Perftrace < имя_файла >| STDERR| STDOUT:Perftrace < filename >| STDERR| STDOUT
Создает и переадресовывает все данные трассировки производительности в файл, указываемый параметром имя_файла, в stderr или stdout.Creates and redirects all performance trace information to the file specified by file name, to stderr or to stdout. По умолчанию вывод о трассировки производительности направляется в stdout.By default performance trace output is sent to stdout. Если файл уже существует, он будет усечен до 0 байт.If the file already exists, it will be truncated to zero bytes. Команда Perftrace может встречаться в скрипте несколько раз.The Perftrace command can appear multiple times in a script.

Команды контроля выполненияExecution Control Commands
:On Error[ exit | ignore]:On Error[ exit | ignore]
Установка действия, выполняемого при возникновении ошибки во время исполнения скрипта или пакета.Sets the action to be performed when an error occurs during script or batch execution.

Если используется параметр exit , программа sqlcmd завершает работу с возвратом соответствующего значения ошибки.When the exit option is used, sqlcmd exits with the appropriate error value.

Если указан параметр ignore , программа sqlcmd пропускает ошибку и продолжает выполнять пакет или скрипт.When the ignore option is used, sqlcmd ignores the error and continues executing the batch or script. По умолчанию будет распечатано сообщение об ошибке.By default, an error message will be printed.

[:] QUIT[:] QUIT
Ведет к завершению работы sqlcmd .Causes sqlcmd to exit.

[:] EXIT[ (инструкция) ][:] EXIT[ (statement) ]
Позволяет использовать результат инструкции SELECT в качестве возвращаемого значения программы sqlcmd.Lets you use the result of a SELECT statement as the return value from sqlcmd. Если числовой, первый столбец последней строки результатов преобразуется в 4-байтовое целое число (long).If numeric, the first column of the last result row is converted to a 4-byte integer (long). В MS-DOS младший байт передается родительскому процессу или уровню ошибки операционной системы.MS-DOS passes the low byte to the parent process or operating system error level. В Windows 200x передается 4-байтовое целое число.Windows 200x passes the whole 4-byte integer. Синтаксис:The syntax is:

:EXIT(query)

Пример:For example:

:EXIT(SELECT @@ROWCOUNT)

Также можно включить параметр EXIT в пакетный файл.You can also include the EXIT parameter as part of a batch file. Например, в командной строке введите:For example, at the command prompt, type:

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

Программа sqlcmd отправляет на сервер все, что заключено в круглые скобки () .The sqlcmd utility sends everything between the parentheses () to the server. Если хранимая системная процедура выбирает набор и возвращает значение, то возвращается только выбранный набор.If a system stored procedure selects a set and returns a value, only the selection is returned. Инструкция EXIT () с пустыми круглыми скобками выполняет все, что предшествует ей в пакете, а затем завершается без возврата значения.The EXIT () statement with nothing between the parentheses executes everything before it in the batch and then exits without a return value.

Если указан неверный запрос, программа sqlcmd завершает работу без возврата значения.When an incorrect query is specified, sqlcmd will exit without a return value.

Список форматов инструкции EXIT:Here is a list of EXIT formats:

  • :EXIT:EXIT

    Не выполняет пакет, немедленно завершает работу и не возвращает значения.Does not execute the batch, and then quits immediately and returns no value.

  • :EXIT( ):EXIT( )

    Выполняет пакет, завершает выполнение и не возвращает значения.Executes the batch, and then quits and returns no value.

  • :EXIT(query):EXIT(query)

    Выполняет пакет, включая запрос, возвращает результаты запроса и завершает работу.Executes the batch that includes the query, and then quits after it returns the results of the query.

    Если в скрипте sqlcmd используется параметр RAISERROR и при этом возникает состояние 127, программа sqlcmd завершает работу и возвращает клиенту идентификатор сообщения.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. Пример:For example:

    RAISERROR(50001, 10, 127)

    Эта ошибка приведет к завершению скрипта sqlcmd , а клиенту будет возвращено сообщение с идентификатором 50001.This error will cause the sqlcmd script to end and return the message ID 50001 to the client.

    Возвращаемые значения от –1 до –99 зарезервированы SQL Server. Программа sqlcmd дополнительно определяет следующие коды возврата:The return values -1 to -99 are reserved by SQL Server ; sqlcmd defines the following additional return values:

Возвращаемые значенияReturn Values ОписаниеDescription
–100-100 Перед выбором возвращаемого значения произошла ошибка.Error encountered prior to selecting return value.
–101-101 При выборе возвращаемого значения не найдены строки.No rows found when selecting return value.
–102-102 При выборе возвращаемого значения произошла ошибка преобразования.Conversion error occurred when selecting return value.

GO [число]GO [count]
GO обозначает конец пакетного файла и исполнения любых кэшированных инструкций Transact-SQL. Пакет выполняется несколько раз в виде отдельных пакетов; в одном пакете переменную можно объявить всего один раз.GO signals both the end of a batch and the execution of any cached Transact-SQL statements.The batch is executed multiple times as separate batches; you cannot declare a variable more than once in a single batch.

Прочие командыMiscellaneous Commands
:r < имя_файла >:r < filename >
Производит синтаксический анализ дополнительных инструкций Transact-SQL и команд программы sqlcmd в файле <имя_файла>, загружая их в кэш инструкций.Parses additional Transact-SQL statements and sqlcmd commands from the file specified by <filename> into the statement cache.

Если файл содержит инструкции Transact-SQL, за которыми не следует ключевое слово GO, необходимо ввести GO в строку, следующую за :r.If the file contains Transact-SQL statements that are not followed by GO, you must enter GO on the line that follows :r.

Примечание

Файл < имя_файла > считывается относительно стартового каталога, в котором была запущена программа sqlcmd.< filename > is read relative to the startup directory in which sqlcmd was run.

Файл будет считан и выполнен после обнаружения признака конца пакета.The file will be read and executed after a batch terminator is encountered. Можно указывать несколько команд :r .You can issue multiple :r commands. В файле могут содержаться любые команды программы sqlcmd ,The file may include any sqlcmd command. в том числе признак конца пакета GO.This includes the batch terminator GO.

Примечание

Число строк, отображаемых в интерактивном режиме, для каждой найденной команды :r будет увеличено на 1.The line count that is displayed in interactive mode will be increased by one for every :r command encountered. Команда :r отображается в выводе команды list.The :r command will appear in the output of the list command.

:Serverlist:Serverlist
Выводит список локально настроенных серверов и имена серверов, осуществляющих трансляцию данных в сети.Lists the locally configured servers and the names of the servers broadcasting on the network.

:Connect имя_сервера[\имя_экземпляра] [-l время_ожидания] [-U имя_пользователя [-P password]]:Connect server_name[\instance_name] [-l timeout] [-U user_name [-P password]]
Подключается к экземпляру SQL Server.Connects to an instance of SQL Server . Также закрывает текущее соединение.Also closes the current connection.

Параметры времени ожидания:Time-out options:

00 ждать бесконечноwait forever
n>0n>0 ждать в течение n секундwait for n seconds

Переменная скрипта SQLCMDSERVER отображает текущее активное соединение.The SQLCMDSERVER scripting variable will reflect the current active connection.

Если не указан параметр timeout , то берется значение переменной SQLCMDLOGINTIMEOUT по умолчанию.If timeout is not specified, the value of the SQLCMDLOGINTIMEOUT variable is the default.

Если указано только имя_пользователя (в виде параметра или в виде переменной среды), у пользователя будет запрошен пароль.If only user_name is specified (either as an option, or as an environment variable), the user will be prompted to enter a password. Однако этого не произойдет, если установлены переменные среды SQLCMDUSER или SQLCMDPASSWORD.This is not true if the SQLCMDUSER or SQLCMDPASSWORD environment variables have been set. Если ни параметры, ни переменные среды не введены, то для входа используется режим проверки подлинности Windows.If neither options nor environment variables are provided, Windows Authentication mode is used to login. Например, для подключения к экземпляру SQL Server, instance1, с именем myserver с использованием встроенной безопасности следует ввести следующую команду:For example to connect to an instance, instance1, of SQL Server , myserver, by using integrated security you would use the following:

:connect myserver\instance1

Для подключения к экземпляру myserver по умолчанию с использованием переменных скрипта следует ввести следующее выражение: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)

[:] !!< команда>[:] !!< command>
Исполнение команд операционной системы.Executes operating system commands. Чтобы выполнить команду операционной системы, начните строку с двух восклицательных знаков (!!) и далее укажите команду операционной системы.To execute an operating system command, start a line with two exclamation marks (!!) followed by the operating system command. Пример:For example:

:!! Dir

Примечание

Команда выполняется на компьютере, где запущена программа sqlcmd .The command is executed on the computer on which sqlcmd is running.

:XML [ON | OFF]:XML [ON | OFF]
Дополнительные сведения см. в подразделах Формат вывода XML и Формат вывода JSON ниже.For more information, see XML Output Format and JSON Output Format in this topic

:Help:Help
Выводит список команд программы sqlcmd вместе с кратким описанием.Lists sqlcmd commands together with a short description of each command.

Имена файлов sqlcmdsqlcmd File Names

Входные файлыsqlcmd можно указать с помощью параметра -i или команды :r .sqlcmd input files can be specified with the -i option or the :r command. Выходные файлы можно указать параметром -o или командами :Error, :Out и :Perftrace .Output files can be specified with the -o option or the :Error, :Out and :Perftrace commands. При работе с этими файлами следует придерживаться следующих правил.The following are some guidelines for working with these files:

  • :Error, :Out и :Perftrace должно быть указано отдельное <имя_файла>.:Error, :Out and :Perftrace should use separate <filename>. Одинаковое <имя_файла> может привести к смешиванию входных данных команд.If the same <filename> is used, inputs from the commands may be intermixed.

  • Если входной файл, вызываемый из программы sqlcmd на локальном компьютере, расположен на удаленном сервере и путь к нему содержит букву диска (например, ":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. то выходной файл будет создан на локальном компьютере, а не на удаленном сервере.The output file will be created on the local computer and not on the remote server.

  • Допустимы следующие пути: C:\<filename>, \\<Server>\<Share$>\<filename> и "C:\Some Folder\<file name>".Valid file paths include: C:\<filename>, \\<Server>\<Share$>\<filename> and "C:\Some Folder\<file name>". Если путь содержит пробелы, его необходимо заключить в кавычки.If there is a space in the path, use quotation marks.

  • Каждый новый сеанс программы sqlcmd перезаписывает существующие файлы с теми же именами.Each new sqlcmd session will overwrite existing files that have the same names.

Информационные сообщенияInformational Messages

Программаsqlcmd выводит все информационные сообщения, отправляемые сервером.sqlcmd prints any informational message that are sent by the server. В следующем примере после выполнения инструкций Transact-SQL выводится информационное сообщение.In the following example, after the Transact-SQL statements are executed, an informational message is printed.

Введите в командной строке:At the command prompt, type the following:

sqlcmd

At the sqlcmd prompt type:

USE AdventureWorks2012;

GO

При нажатии клавиши ВВОД отображается следующее информационное сообщение: "Контекст базы данных изменен на AdventureWorks2012".When you press ENTER, the following informational message is printed: "Changed database context to 'AdventureWorks2012'."

Формат вывода результатов выполнения запросов Transact-SQLOutput Format from Transact-SQL Queries

Сначала программаsqlcmd выводит заголовок с именами столбцов, перечисленными в списке выборки,sqlcmd first prints a column header that contains the column names specified in the select list. которые разделяются символом, определенным в переменной SQLCMDCOLSEP.The column names are separated by using the SQLCMDCOLSEP character. По умолчанию это пробел.By default, this is a space. Если имя столбца короче, чем ширина столбца, выходные данные дополняются пробелами до начала следующего столбца.If the column name is shorter than the column width, the output is padded with spaces up to the next column.

За этой строкой выводится строка-разделитель, которая представляет собой последовательность дефисов.This line will be followed by a separator line that is a series of dash characters. Далее представлен пример вывода.The following output shows an example.

Запустите программу sqlcmd.Start sqlcmd. Введите в командной строке sqlcmd следующее:At the sqlcmd command prompt, type the following:

USE AdventureWorks2012;

SELECT TOP (2) BusinessEntityID, FirstName, LastName

FROM Person.Person;

GO

При нажатии клавиши ВВОД возвращается следующий результирующий набор:When you press ENTER, the following result set is retuned.

BusinessEntityID FirstName LastName

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

285 Syed Abbas

293 Catherine Abel

(2 row(s) affected)

Хотя столбец BusinessEntityID имеет ширину 4 символа, она была увеличена, чтобы вместить более длинное имя столбца.Although the BusinessEntityID column is only 4 characters wide, it has been expanded to accommodate the longer column name. По умолчанию вывод заканчивается на 80 символе.By default, output is terminated at 80 characters. Это можно изменить с помощью параметра -w , либо задав переменную скрипта SQLCMDCOLWIDTH.This can be changed by using the -w option, or by setting the SQLCMDCOLWIDTH scripting variable.

Формат вывода XMLXML Output Format

Выходные XML-данные, получаемые в результате выполнения предложения FOR XML, выводятся непрерывным потоком в неформатированном виде.XML output that is the result of a FOR XML clause is output, unformatted, in a continuous stream.

Если вы ожидаете вывод XML-данных, воспользуйтесь следующей командой: :XML ON.When you expect XML output, use the following command: :XML ON.

Примечание

Программаsqlcmd выводит сообщения об ошибках в обычном формате.sqlcmd returns error messages in the usual format. Обратите внимание, что сообщения об ошибках также выводятся в текстовый поток в формате XML.Notice that the error messages are also output in the XML text stream in XML format. Если указать параметр :XML ON, программа sqlcmd не выводит информационные сообщения.By using :XML ON, sqlcmd does not display informational messages.

Чтобы отключить режим XML, введите следующую команду: :XML OFF.To set the XML mode off, use the following command: :XML OFF.

Команда GO не должна стоять раньше команды XML OFF, поскольку последняя возвращает sqlcmd в режим вывода с построчным форматированием.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.

Не допускается смешивать XML-данные (потоковые) и данные набора строк.XML (streamed) data and rowset data cannot be mixed. Если перед выполнением инструкции Transact-SQL, которая выводит потоки XML-данных, не была введена команда XML ON, то вывод будет искажен.If the XML ON command has not been issued before a Transact-SQL statement that outputs XML streams is executed, the output will be garbled. Если была выполнена команда XML ON, то нельзя выполнить инструкции Transact-SQL, которые выводят обычные наборы строк.If the XML ON command has been issued, you cannot execute Transact-SQL statements that output regular row sets.

Примечание

Команда :XML не поддерживает инструкцию SET STATISTICS XML.The :XML command does not support the SET STATISTICS XML statement.

Формат вывода JSONJSON Output Format

Если ожидается вывод данных JSON, воспользуйтесь следующей командой: :XML ON.When you expect JSON output, use the following command: :XML ON. В противном случае выходные данные содержат как имя столбца, так и текст JSON.Otherwise the output includes both the column name and the JSON text. Эти данные не являются допустимой JSON.This output is not valid JSON.

Чтобы отключить режим XML, введите следующую команду: :XML OFF.To set the XML mode off, use the following command: :XML OFF.

Дополнительные сведения см. в разделе Формат вывода XML этой статьи.For more info, see XML Output Format in this topic.

Использование проверки подлинности Azure Active DirectoryUsing Azure Active Directory Authentication

Примеры использования проверки подлинности 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 -U bob@contoso.com -P MyAADPassword -G -l 30

Рекомендации по использованию sqlcmdsqlcmd Best Practices

Чтобы добиться максимальной безопасности и эффективности, придерживайтесь следующих правил.Use the following practices to help maximize security and efficiency.

  • Используйте встроенную безопасность.Use integrated security.

  • В автоматических средах указывайте параметр -X .Use -X in automated environments.

  • Обеспечьте защиту входных и выходных файлов при помощи соответствующих разрешений файловой системы NTFS.Secure input and output files by using appropriate NTFS file system permissions.

  • В целях повышения производительности выполняйте как можно больше работы в одном сеансе программы sqlcmd .To increase performance, do as much in one sqlcmd session as you can, instead of in a series of sessions.

  • Задайте значение времени ожидания для выполнения пакетов или запросов выше, чем ожидаемое время их выполнения.Set time-out values for batch or query execution higher than you expect it will take to execute the batch or query.

См. также:See Also

Запуск программы sqlcmd Start the sqlcmd Utility
Выполнение файлов скрипта Transact-SQL с использованием программы sqlcmd Run Transact-SQL Script Files Using sqlcmd
Использование программы sqlcmd Use the sqlcmd Utility
Использование программы sqlcmd с переменными скрипта Use sqlcmd with Scripting Variables
Подключение к компоненту Database Engine при помощи программы sqlcmd Connect to the Database Engine With sqlcmd
Изменение скриптов SQLCMD при помощи редактора запросов Edit SQLCMD Scripts with Query Editor
Управление шагами задания Manage Job Steps
Создание шага задания «CmdExec»Create a CmdExec Job Step