Alexander A Manaeff -

 
 

MS SQL Server. Выполнение команд операционной системы

Все об администрировании Windows NT/2000/2003/2008/2012 Server (в т.ч. R2) серверов. Групповые политики, домены, безопасность и пр. То, чего не найдешь в бескрайних просторах Интернета. Решения тех проблем, которые не решаются типовыми ответами, которые можно получить в техподдержке Майкрософта - а именно: переустановить продукт или купить какой-ть другой лицензионный диск.

Модератор: UncleFather

MS SQL Server. Выполнение команд операционной системы

Сообщение UncleFather » 15 июн 2015 13:59, Пн

Задача:

Необходимо запустить команду операционной системы (командная оболочка Windows) (или какой-либо исполняемый файл ОС) из скрипта MS SQL Server.


Решение:

MS SQL Server позволяет выполнять команды операционной системы и возвращать результат в виде текстовых строк. Например, прямо из SQL Server можно запустить bat-файл, любую программу и вообще использовать все возможности командной строки.

Для этого используется системная хранимая процедура xp_cmdshell. Запуск этой процедуры по умолчанию запрещен. Чтобы включить эту возможность нужно выполнить следующий код:

Код: Выделить всё
-- Включение разрешения изменения расширенных опций.
EXEC sp_configure 'show advanced options', 1
GO
-- Обновление текущих настроек расширенных опций.
RECONFIGURE
GO
-- Включение возможности запуска внешних программ.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- Обновление текущих настроек для запуска внешних программ.
RECONFIGURE
GO


Теперь для запуска bat-файла достаточно выполнить следующую команду:

Код: Выделить всё
EXEC master..xp_cmdshell 'test.bat'


Или эту, если необходимо подавить вывод результатов:

Код: Выделить всё
EXEC master..xp_cmdshell 'test.bat', NO_OUTPUT


Источник



Пример 1
Чтобы подключить сетевой диск, читаем здесь.




Пример 2

Чтобы почистить папку C:\WINDOWS\Temp\, выполняем скрипт:

Код: Выделить всё
-- Включение разрешения изменения расширенных опций.
EXEC sp_configure 'show advanced options', 1
GO
-- Обновление текущих настроек расширенных опций.
RECONFIGURE
GO
-- Включение возможности запуска внешних программ.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- Обновление текущих настроек для запуска внешних программ.
RECONFIGURE
GO

-- Теперь для запуска bat-файла достаточно выполнить следующую команду:

-- EXEC master..xp_cmdshell 'for /R "C:\WINDOWS\Temp\" %F in (.) DO IF NOT "%F"=="C:\WINDOWS\Temp\." (RD /S /Q "%F") ELSE (Del /F /S /Q "C:\WINDOWS\Temp\*")'
Аватара пользователя
UncleFather
Site Admin
 
Сообщения: 1325
Зарегистрирован: 17 авг 2004 16:20, Вт

Вернуться в Администрирование Windows Server

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Alexander A Manaeff -
@Mail.ru .