SQL.RU
 client/server technologies
 Главная | Документация | Статьи | Книги | Форум | Блоги | Опросы | Гостевая | Рассылка | Работа | Поиск | FAQ |

Утилиты MS SQL Server

ПУБЛИКАЦИИ  

По материалам статей 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, который задаёт выполнение запроса, а результат выводит в файл:
osql /S Server_name /U user /P password /Q query /o output_file

2. Утилита DTSWIZ запускает DTS Import/Export Wizard из сценария NT или файла VBSCRIPT. Имеющиеся строковые параметры позволяют Вам не выводить диалоговые окна мастера, задавая необходимую информацию из командной строки.

1. Утилита командной строки DTSRUN запускает обслуживание DTS пакетов. Использование dtsrun в заданиях по расписанию MS SQL Server предоставляет Вам отличную возможность регулярно обрабатывать DTS пакеты. Вы можете хранить пакеты DTS в базе данных msdb, структурированном COM файле или Microsoft repository. Чтобы обработать DTS пакет, сохранённые в msdb, используйте следующий синтаксис:
dtsrun /S Server_name /U user /P password /N package_name

Сохранение результатов запроса в текстовом файле

Брайен пишет, что часто возникает необходимость сохранить результаты исполнения запроса в текстовом файле. Особенно это удобно, когда время исполнения запроса весьма велико или доступные ресурсы не позволяют запускать запрос в рабочие часы, и Вы решите запустить исполнение запроса ночью, а результаты посмотреть утром. Вы можете создавать задание, содержащее CMDEXEC, которое выполнит необходимые команды и выведет результаты запроса c:\inputquery.txt в отдельный файл.

\mssql7\binn\osql -Usa -Ppassword -ic:\inputquery.txt -oc:\outputdir\output.txt

Если Вы не хотите открыто записывать пароль в ваше задание, можно использовать ключ "E" для организации доверительного подключения.
Также, можно воспользоваться расширенной хранимой процедурой XP_CMDSHELL:

master..xp_cmdshell 'osql -Usa -Pmisty -Q"select * from products" -dNorthwind -oc:\output.txt' '

Параметр "Q" задаёт строку запроса.
В конце запроса Вы можете добавить дополнительный параметр NO_OUTPUT, для блокирования любого вывода клиенту.

master..xp_cmdshell 'osql -Usa -Pmisty -q"select * from products" -dNorthwind -oc:\output.txt', no_output

Есть и другие методы конвейерной пересылки результатов исполнения запроса в текстовый файл (например, используя OLE Automation) но они более трудоёмки, чем этот метод.

Перевод: Александр Гладченко  2001г.

Rambler's Top100 Рейтинг@Mail.ru  Administrator: Обратная связь 
Copyright: SQL.Ru 2000-2013