Использование служебной программы sqlcmd (SQL Server Express)

Базами данных Microsoft SQL Server 2008 Express (SQL Server Express) можно управлять с помощью запускаемой из командной строки программы sqlcmd. Чтобы получить доступ к программе sqlcmd, нажмите кнопку Пуск, выберите Выполнить и введите sqlcmd.exe.

Синтаксис SQLCMD

При запуске программы sqlcmd доступны следующие аргументы. Дополнительные сведения о конкретных аргументах см. в разделах Программа sqlcmd и Учебник. Программа sqlcmd электронной документации по SQL Server.

Sqlcmd
  [-U login id] [-P password] [-S server] [-H hostname] 
  [-E trusted connection] [-d use database name] [-l login timeout]
  [-N encrypt connection] [-C trust the server certificate]
  [-t query timeout] [-h headers] [-s colseparator] [-w screen width]
  [-a packetsize] [-e echo input] [-I Enable Quoted Identifiers]
  [-c cmdend] [-L[c] list servers[clean output]] [-q "cmdline query"]
  [-Q "cmdline query" and exit] [-m errorlevel] [-V severitylevel]
  [-W remove trailing spaces] [-u unicode output]
  [-r[0|1] msgs to stderr] [-i inputfile] [-o outputfile]
  [-f <codepage> | i:<codepage>[,o:<codepage>]]
  [-k[1|2] remove[replace] control characters]
  [-y variable length type display width]
  [-Y fixed length type display width]
  [-p[1] print statistics[colon format]]
  [-R use client regional setting] [-b On error batch abort]
  [-v var = "value"...]
  [-X[1] disable commands[and exit with warning]]
  [-? show syntax summary]

Команды SQLCMD

В следующей таблице представлен обзор команд, которые можно использовать в программе sqlcmd. Дополнительные сведения об этих командах см. в разделе Программа sqlcmd электронной документации по SQL Server 2008.

Команда

Описание

go [count]

Исполнение всех кэшированных инструкций Transact-SQL. Если для параметра count указано значение, кэшированные инструкции будут выполнены count раз как единый пакет. Например, следующая последовательность из двух инструкций исполняется дважды:

1> Use MyDatabase
2> SELECT FirstName, LastName FROM Employee WHERE EmployeeID < 10
3> GO 2

-Nencrypt connection

С помощью этого переключателя клиент запрашивает шифрованное соединение. Этот параметр аналогичен параметру ADO.net ENCRYPT = true.

-Ctrust the server certificate

С помощью этого переключателя клиент настраивает неявное доверие к сертификату сервера без проверки. Этот параметр аналогичен параметру ADO.net TRUSTSERVERCERTIFICATE = true.

reset

Очистка кэша инструкций.

ed

Изменение текущего пакета инструкций или пакета, который исполнялся последним. Для изменения пакета, который исполнялся последним, эту команду следует ввести сразу по завершении последнего пакета.

!! <команда>

Исполнение команд операционной системы. Для исполнения команды операционной системы поставьте два восклицательных знака (!!) в начале строки, после чего введите команду операционной системы. Например, список каталогов текущего диска отображается так:

1> !! dir

quit

— или —

exit

Немедленный выход из sqlcmd.

exit [(инструкция)]

Использование результата инструкции SELECT в качестве значения, возвращенного от sqlcmd.

Если в инструкции exit() в скобках ничего не указано, будут исполнены все предшествующие инструкции пакета и произведен выход без возврата значения.

Кроме того, допускается включение параметра exit в состав инструкций пакетного файла. Например:

sqlcmd /Q "exit(SELECT COUNT(*) FROM '%1')"

:r <имя_файла>

Анализ инструкций Transact-SQL и команд sqlcmd из файла, указанного как filename, в кэш инструкций. Файл будет прочитан и исполнен после обработки команды завершения пакета (go).

:serverlist

Список локально настроенных серверов и имен серверов, выполняющих широковещательную рассылку в сети.

:list

Печать содержимого кэша инструкций.

:listvar

Список переменных сценария, заданных в настоящее время.

:error <назначение>[ filename | STDERR | STDOUT]

Перенаправление всех выходных данных об ошибках в файл, указанный как filename, либо в поток STDERR или STDOUT. По умолчанию выходные данные об ошибках направляются в STDERR.

:out <назначение>[ filename | STDERR | STDOUT ]

Перенаправление всех результатов запросов в файл, указанный как filename, либо в поток STDERR или STDOUT. По умолчанию выходные данные направляются в STDOUT.

:perftrace <назначение>[ filename | STDERR | STDOUT ]

Перенаправление всех данных об отслеживании производительности в файл, указанный как filename, либо в поток STDERR или STDOUT. По умолчанию выходные данные об отслеживании производительности направляются в STDOUT.

:connect имя_сервера[\имя_экземпляра] [-t тайм-аут] [-U имя_пользователя [-P пароль] ]

Соединение с экземпляром SQL Server и закрытие текущего соединения.

:on error [ exit | ignore ]

Установка действия, выполняемого при возникновении ошибки во время исполнения скрипта или пакета.

Когда используется параметр exit, sqlcmd закрывается с указанием значения соответствующей ошибки.

Когда используется параметр ignore, sqlcmd пропускает ошибку и продолжает исполнять пакет или скрипт. По умолчанию будет распечатано сообщение об ошибке.

:help

Список команд sqlcmd и краткое описание каждой команды.

Соединение с SQL Server Express

При подключении к серверу SQL Server Express требуется указать имя сервера, а если SQL Server Express установлен как именованный экземпляр, то и имя экземпляра. По умолчанию sqlcmd использует проверку подлинности Windows. Если при подключении к серверу SQL Server Express используется проверка подлинности SQL Server, необходимо также указать сведения учетной записи для подключения к серверу SQL Server Express. Например, при подключении к стандартной версии SQL Server Express на сервере server1 можно использовать следующие аргументы:

sqlcmd -S server1\SQLExpress -U SqlUserAccount -P SqlPassword
ПримечаниеПримечание

Если использовать аргумент -P, пароль появится в командной строке в виде простого текста. Если опустить аргумент -P, будет выдан запрос пароля. Вводимый текст останется скрытым.

Если вход выполнен от имени учетной записи, которая является доверительной на сервере, где запускается SQL Server Express, аргументы -U и -P можно опустить.

sqlcmd -S server1\SQLExpress
ПримечаниеПримечание

Аргумент -E указывает доверенное соединение. Это параметр по умолчанию для sqlcmd, поэтому аргумент -E можно опустить.

Пример

В следующем примере показано использование программы sqlcmd для подключения к экземпляру SQL Server Express с именем SqlExpress на сервере SqlServer1.

Sqlcmd -S SqlServer1\SqlExpress

После подключения можно указать другие команды для управления экземпляром. Например, следующие команды отобразят все установленные в настоящее время базы данных. Это удобный способ поиска логического имени добавленной базы данных SQL Server Express.

SELECT name from sys.databases
Go

Системные хранимые процедуры sp_configure

Возможен контроль и оптимизация ресурсов SQL Server Express через задание параметров конфигурации в системной хранимой процедуре sp_configure system. Дополнительные сведения о процедуре sp_configure см. в разделе Установка параметров конфигурации сервера электронной документации по SQL Server.

В SQL Server Express не поддерживаются следующие параметры конфигурации sp_configure:

  • Agent XPs

  • Database Mail XPs

  • SQL Mail XPs

  • Web Assistant Procedures