FINANCE NEWS

Aug 31 2018

Изменение скриптов SQLCMD при помощи редактора запросов, sqlcmd -e -s.#Sqlcmd #-e #-s


#

Изменение скриптов SQLCMD при помощи редактора запросов

Sqlcmd -e -s

В редакторе запросов компонента Компонент Database Engine в среде Среда SQL Server Management Studio можно писать и изменять запросы в виде скриптов SQLCMD. Скрипты SQLCMD применяются в тех случаях, когда необходимо обработать системные команды Windows и инструкции Transact-SQL в одном и том же скрипте.

Чтобы при помощи редактора запросов компонента Компонент Database Engine писать и изменять скрипты SQLCMD, необходимо включить режим скриптов SQLCMD. По умолчанию режим скриптов SQLCMD в редакторе запросов отключен. Режим скриптов можно включить, нажав кнопку Режим SQLCMD на панели инструментов или выбрав пункт Режим SQLCMD в меню Запрос .

При включении режима скриптов SQLCMD отключается функция IntelliSense и отладчик Transact-SQL в редакторе запросов компонента Компонент Database Engine.

В скриптах SQLCMD в редакторе запросов можно использовать те же возможности, что и в любых других скриптах Transact-SQL. К таким средствам относятся:

система управления версиями;

синтаксический анализ скриптов;

Включить режим скриптов SQLCMD для активного окна редактора запросов компонента Компонент Database Engine можно при помощи следующей процедуры.

Переключение окна редактора запросов компонента Database Engine в режим скриптов SQLCMD

В обозревателе объектов щелкните сервер правой кнопкой мыши и выберите команду Создать запрос , чтобы открыть новое окно редактора запросов компонента Компонент Database Engine.

В меню Запрос выберите команду Режим SQLCMD .

Редактор запросов выполняет инструкции sqlcmd в контексте редактора запросов.

На панели инструментов Редактора SQL в списке Доступные базы данных выберите пункт AdventureWorks2012 .

В окне редактора запросов введите следующие две инструкции Transact-SQL и инструкцию !!DIR sqlcmd.

Нажмите клавишу F5, чтобы выполнить весь раздел, составленный из инструкций Transact-SQL и MS-DOS.

Обратите внимание на две панели с результатами выполнения первой и третьей инструкций SQL.

В панели Результаты перейдите на вкладку Сообщения , чтобы просмотреть сообщения всех трех инструкций.

(Обработано строк: 6)

(Обработано строк: 4)

При выполнении из командной строки программа sqlcmd позволяет добиться полного взаимодействия с операционной системой. Используя редактор запросов в Режиме SQLCMD , будьте внимательны, чтобы не запустить интерактивные инструкции. Редактор запросов не может моментально ответить операционной системе.

Дополнительные сведения о выполнении SQLCMD см. в разделе Программа sqlcmd или изучите учебник по SQLCMD.

Чтобы режим скриптов SQLCMD включался по умолчанию, в меню Сервис выберите пункт Параметры , раскройте узлы Выполнение запроса и SQL Server , перейдите на страницу Общие и установите флажок Открывать новые запросы в режиме SQLCMD .

После включения режима скриптов можно писать команды SQLCMD и инструкции Transact-SQL. Применяются следующие правила.

команда SQLCMD должна быть первой инструкцией в строке;

в каждой строке разрешается только одна команда SQLCMD;

перед командами SQLCMD могут идти комментарии или пробелы;

команды SQLCMD внутри символов комментария не выполняются;

символами однострочных комментариев являются два дефиса ( –) , они должны находиться в начале строки;

перед командами операционной системы должны стоять два восклицательных знака ( !! ). Два восклицательных знака означают, что следующая за ними команда должна выполняться с помощью командного процессора cmd.exe . Текст, следующий после !! , передается как параметр cmd.exe , поэтому полная командная строка будет иметь вид: “%SystemRoot%\system32\cmd.exe /c text after !! ” .

чтобы четко различать команды SQLCMD и Transact-SQL, ко всем командам SQLCMD необходимо добавлять префикс в виде двоеточия ( : );

команда GO может использоваться без вводной части или предваряться « . »;

Редактор запросов компонента Компонент Database Engine поддерживает переменные среды и переменные, определенные в скрипте SQLCMD, однако не поддерживает встроенные переменные SQLCMD и переменные osql. Обрабатываемый код SQLCMD среды Среда SQL Server Management Studio принимает переменные с учетом регистра. Например, PRINT ‘$(COMPUTERNAME)’ выдаст правильный результат, а PRINT ‘$(ComputerName)’ приведет к ошибке.

В среде Среда SQL Server Management Studio для выполнения в обычном режиме и режиме SQLCMD используется Microsoft .NET Framework SqlClient. При вызове из командной строки SQLCMD использует поставщика OLE DB. Так как могут применяться различные параметры по умолчанию, выполнение одного и того же запроса в среде Среда SQL Server Management Studio в режиме SQLCMD и в программе SQLCMD может проходить по-разному.


Written by admin


Leave a Reply

Your email address will not be published. Required fields are marked *