|
|
По материалам статей Michael Otey на Sqlmag.com "Overlooked Command-Line Utilities" и Brian Knight на SWYNK.COM "Piping Queries to a Text File" Статья рассмтривает набор утилит командной строки MS SQL Server и варианты их применения. Семёрка утилит Майкл пишет, что MS SQL Server располагает мощными графическими инструментальными средствами управления, но имеет также много не так широко известных утилит командной строки, которые Вы можете использовать в сценариях оболочки Windows NT или VBSCRIPT, для управления SQL сервером. Вот - его советы для семи наиболее часто используемых утилит MS SQL Server, которые входят в поставку MS SQL Server 2000 и 7.0: 7. Консольные команды Net Start и Net Stop MSSQLServer позволяют запускать и останавливать сервисы MS SQL Server из командной строки. Вы можете добавлять эти команды в собственные сценарии или командные файлы, чтобы автоматически перезапускать сервер баз данных. 6. Bulk Copy Program (BCP) - предназначена для загрузки/импорта данных в MS SQL Server или для их экспорта. Хотя автор не использует bcp, а предпочитает Data Transformation Services (DTS) из состава MS SQL Server 7.0, bcp (по его мнению) остаётся одной из полезных возможностей передачи данных. Описание синтаксиса этой утилиты очень подробно представлено в BOL. 5. Команда ODBCCMPT устанавливает уровень совместимости ODBC для пользовательского приложения. Эта утилита особенно полезна, когда Вы используете версию 3.x ODBC драйвера, но необходимо обеспечить подключение к MS SQL Server 2000 или 7.0 из пользовательского приложения через ODBC драйвер версии 2.x. Для поддержки совместимости с MS SQL Server 6.x, Вы можете использовать odbccmpt с ключом /v:6. Синтаксис команды - odbccmpt file_name /v:version_number 4. Утилита ITWIZ позволяет запускать Index Tuning Wizard MS SQL Server из командной строки. 3. ISQL и OSQL утилиты позволяют выполнять отдельные
инструкции SQL, а также SQL скрипты, сохраненные в файлах -
сценариях. Однако isql использует урезанную DB-Library для
соединения с MS SQL Server. Нужно всегда помнить, что osql
работает через ODBC. Ниже приведен синтаксис osql, который
задаёт выполнение запроса, а результат выводит в файл:
2. Утилита DTSWIZ запускает DTS Import/Export Wizard из сценария NT или файла VBSCRIPT. Имеющиеся строковые параметры позволяют Вам не выводить диалоговые окна мастера, задавая необходимую информацию из командной строки. 1. Утилита командной строки DTSRUN запускает обслуживание
DTS пакетов. Использование dtsrun в заданиях по расписанию MS
SQL Server предоставляет Вам отличную возможность регулярно
обрабатывать DTS пакеты. Вы можете хранить пакеты DTS в базе
данных msdb, структурированном COM файле или Microsoft
repository. Чтобы обработать DTS пакет, сохранённые в msdb,
используйте следующий синтаксис: Сохранение результатов запроса в текстовом файле Брайен пишет, что часто возникает необходимость сохранить результаты исполнения запроса в текстовом файле. Особенно это удобно, когда время исполнения запроса весьма велико или доступные ресурсы не позволяют запускать запрос в рабочие часы, и Вы решите запустить исполнение запроса ночью, а результаты посмотреть утром. Вы можете создавать задание, содержащее CMDEXEC, которое выполнит необходимые команды и выведет результаты запроса c:\inputquery.txt в отдельный файл. \mssql7\binn\osql -Usa -Ppassword -ic:\inputquery.txt -oc:\outputdir\output.txt Если Вы не хотите открыто записывать пароль в ваше задание,
можно использовать ключ "E" для организации доверительного
подключения. master..xp_cmdshell 'osql -Usa -Pmisty -Q"select * from products" -dNorthwind -oc:\output.txt' ' Параметр "Q" задаёт строку запроса. master..xp_cmdshell 'osql -Usa -Pmisty -q"select * from products" -dNorthwind -oc:\output.txt', no_output Есть и другие методы конвейерной пересылки результатов исполнения запроса в текстовый файл (например, используя OLE Automation) но они более трудоёмки, чем этот метод. |
Перевод: Александр Гладченко 2001г. |