0

Я должен ежедневно выполнять хранимую процедуру в определенное время. Я боролся с Windows Service, и после неудачных попыток я начал изучать расписание SQL-задания или планировал событие.Расписание хранимой процедуры в Microsoft SQL Server 2008 R2

Чтобы запланировать задание SQL Server, я должен был создать его с помощью агента SQL Server. Я работаю над Microsoft SQL Server 2008 R2 Express (с расширенными службами) в Windows и не могу найти агента SQL Server, даже несмотря на то, что у меня есть доступ к админу (зарегистрирован как проверка подлинности Windows).

С данным сценарием, что является лучшим способом запланировать хранимую процедуру и как мне это сделать?

+3

В выпуске ** Express ** нет агента SQL Server - вам нужно найти другой способ его запуска (например, с помощью приложения командной строки, которое может быть запланировано с помощью планировщика Windows) или обновления к другому выпуску SQL Server, который поддерживает агент SQL Server. –

+0

В чем заключается контекст попытки запланировать выполнение хранимой процедуры? Связано ли это с веб-приложением (например, отправка электронной почты новым пользователям)? ... ночной пакетный процесс (например: анализ данных для регулярных отчетов)? Немного больше контекста * может * помочь другим здесь помочь вам в решении, которое работает для вас. –

+0

Хранимая процедура запрашивает одну таблицу, группирует данные по дате и записывает ее в другую таблицу.Дата начала и окончания предоставляется хранимой процедуре, и цель состоит в том, чтобы ежедневно запускать эту процедуру, когда датой начала является текущая дата, а дата окончания - «завтрашняя» дата – Sarah

ответ

0

Существует один способ запланировать процедуру с использованием другого SP. Создать новый SP, как показано ниже:

CREATE SP1 
AS 
WHILE (1) 
BEGIN 
    WAITFOR TIME '22:20'; -- Your Time 
    EXECUTE 'Your SP Name' 
END; 
GO 

Вы можете использовать обработку ошибок в соответствии с вашими требованиями.

+1

, которая выполнит эту процедуру – Azar

0

SQL Server Agent содержит THRE задний конец таблицы для хранения переднего конца данных при создании задания

sysjobs 
sysjobschedules 
sysjobsteps 

Введите информацию, относящуюся работу в sysjobs, дают информацию о планировании в таблице расписаний и дать код SQL в такие шаги, как exec procname. Обратите внимание, что он должен обновляться только в базе данных msdb.

+0

. Я не иметь агента SQL Server. Любые указатели? Я не могу обновить версию SQL на сервере. – Sarah

0

Поскольку SQL Server Express не включает агент SQL Server, вы не сможете планировать SQL-задания непосредственно на SQL Server. Однако это не означает, что вы не можете планировать выполнение заданий.

sqlcmd. Это инструмент командной строки. (Запустите sqlcmd /? в командном окне, и он покажет вам точный синтаксис командной строки.)

Например, вы можете использовать встроенный планировщик задач Windows для планирования и выполнения конкретной задачи командной строки с использованием доверенного подключения (-E аргумент):

sqlcmd -S {Server}\{SqlExpressInstance} -E -d {Database} -Q "EXECUTE {StoredProcedure}" 

..Or используя определенные учетные данные для входа и пароль (-U и -P аргументов):

sqlcmd -U {LoginId} -P {Password} -S {Server}\{SqlExpressInstance} -d {Database} -Q "EXECUTE {StoredProcedure}" 

Для получения дополнительной информации об использованиичитать: Using the sqlcmd Utility (SQL Server Express)

Для получения дополнительной информации об использовании планировщика задач Windows, следующим образом: Task Scheduler

Удачи!

Смежные вопросы