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

Ответить


Этот вопрос предназначен для предотвращения автоматической отправки форм спам-ботами.
Смайлики
:| :) :wink: :D :lol: :( :cry: 8) :o :oops: :? :x :P :evil: :twisted: :roll: :!: :?: :idea: :arrow: :mrgreen:
Ещё смайлики…

Markdown is OFF

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ВКЛЮЧЕНЫ

Обзор темы
   

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

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\*")'

Вернуться к началу