Я поддерживаю приложение в большом предприятии, одна из моих функций - очистка данных. Есть запрос, который мне нужно выполнять каждый час, и я бы хотел его автоматизировать. Из-за политик организации я не могу создавать задания агента SQL Server или изменять схему, я могу только манипулировать данными.
Бесконечный
WHILE(1=1)
BEGIN
WAITFOR DELAY '01:00';
--do work
END
делает работу за меня, но я пожимаю плечами при мысли о неразрывной связи.
В идеале я должен был бы написать сам MS SS для выполнения заданного куска кода каждый час, но я не уверен, возможно ли это.
Есть ли решение этой проблемы?
sql-server
scheduled-tasks
Иван Кошелев
источник
источник
Ответы:
Ваш друг - sqlcmd (Microsoft Technet)
Например
Удачи.
источник
Вам не нужна Management Studio для выполнения запросов.
Если у вас действительно нет выбора, чтобы кто-то планировал работу для вас, вы должны изучить sqlcmd, как отмечено в ответе hot2use.
Если вы используете версию, в которой это не поддерживается (поскольку вы не указали версию), существует также osql, который является клиентом командной строки, но этот инструмент устарел.
Затем вы можете запланировать команду с помощью любого планировщика, который вы хотите (например, Windows Task Scheduler) и выполнить что-то вроде этого:
Взгляните на документацию, чтобы увидеть, какие опции у вас есть для выбора сервера и аутентификации.
источник
Использование «агента SQL Server», который находится в MS SQL studio (в обозревателе объектов разверните свой сервер, и он обычно должен быть внизу списка), вероятно, является лучшим выбором.
Это создаст задание, которое можно настроить на выполнение через определенные промежутки времени. Задания будут работать как служба на сервере, а не на клиенте. Это означает, что если ваш клиент отключится, он все еще будет работать, и если сервер будет перезагружен (по неизвестной причине), задание продолжит выполняться без необходимости его инициализации снова.
Недостатком является то, что вам, вероятно, понадобятся повышенные права доступа, чтобы сделать это.
источник