Мне нужно знать, как каждый раз запускать SQL-запрос, используя задания агента sql-сервера с минимальными требуемыми настройками конфигурации.
Как планировать работу для SQL-запроса для ежедневной работы?
Ответ 1
-
Разверните агент SQL Server node и щелкните правой кнопкой мыши Jobs node в агенте SQL Server и выберите
'New Job'
-
В окне
'New Job'
введите имя задания и описание на вкладке'General'
. -
Выберите
'Steps'
в левой части окна и нажмите'New'
внизу. -
В окне
'Steps'
введите имя шага и выберите базу данных, к которой вы хотите выполнить запрос. -
Вставьте команду T-SQL, которую вы хотите запустить в окне командной строки, и нажмите
'OK'
. -
Нажмите на
'Schedule'
меню слева от окна New Job и введите информацию о расписании (например, ежедневно и время). -
Нажмите
'OK'
- и это должно быть.
(Есть, конечно, другие варианты, которые вы можете добавить - но я бы сказал, что это минимальный минимум, который вам нужно, чтобы настроить работу и запланировать)
Ответ 2
Я сделал анимированный GIF шагов в принятом ответе. Это от MSSQL Server 2012
Ответ 3
Чтобы сделать это в t-sql, вы можете использовать следующие системные хранимые процедуры для планирования ежедневной работы. Этот пример запланирован ежедневно в 1:00. Подробную информацию о синтаксисе отдельных хранимых процедур и допустимый диапазон параметров см. В справке Microsoft.
DECLARE @job_name NVARCHAR(128), @description NVARCHAR(512), @owner_login_name NVARCHAR(128), @database_name NVARCHAR(128);
SET @job_name = N'Some Title';
SET @description = N'Periodically do something';
SET @owner_login_name = N'login';
SET @database_name = N'Database_Name';
-- Delete job if it already exists:
IF EXISTS(SELECT job_id FROM msdb.dbo.sysjobs WHERE (name = @job_name))
BEGIN
EXEC msdb.dbo.sp_delete_job
@job_name = @job_name;
END
-- Create the job:
EXEC msdb.dbo.sp_add_job
@[email protected]_name,
@enabled=1,
@notify_level_eventlog=0,
@notify_level_email=2,
@notify_level_netsend=2,
@notify_level_page=2,
@delete_level=0,
@[email protected],
@category_name=N'[Uncategorized (Local)]',
@[email protected]_login_name;
-- Add server:
EXEC msdb.dbo.sp_add_jobserver @[email protected]_name;
-- Add step to execute SQL:
EXEC msdb.dbo.sp_add_jobstep
@[email protected]_name,
@step_name=N'Execute SQL',
@step_id=1,
@cmdexec_success_code=0,
@on_success_action=1,
@on_fail_action=2,
@retry_attempts=0,
@retry_interval=0,
@os_run_priority=0,
@subsystem=N'TSQL',
@command=N'EXEC my_stored_procedure; -- OR ANY SQL STATEMENT',
@[email protected]_name,
@flags=0;
-- Update job to set start step:
EXEC msdb.dbo.sp_update_job
@[email protected]_name,
@enabled=1,
@start_step_id=1,
@notify_level_eventlog=0,
@notify_level_email=2,
@notify_level_netsend=2,
@notify_level_page=2,
@delete_level=0,
@[email protected],
@category_name=N'[Uncategorized (Local)]',
@[email protected]_login_name,
@notify_email_operator_name=N'',
@notify_netsend_operator_name=N'',
@notify_page_operator_name=N'';
-- Schedule job:
EXEC msdb.dbo.sp_add_jobschedule
@[email protected]_name,
@name=N'Daily',
@enabled=1,
@freq_type=4,
@freq_interval=1,
@freq_subday_type=1,
@freq_subday_interval=0,
@freq_relative_interval=0,
@freq_recurrence_factor=1,
@active_start_date=20170101, --YYYYMMDD
@active_end_date=99991231, --YYYYMMDD (this represents no end date)
@active_start_time=010000, --HHMMSS
@active_end_time=235959; --HHMMSS
Ответ 4
Вот пример кода:
Exec sp_add_schedule
@schedule_name = N'SchedulName'
@freq_type = 1
@active_start_time = 08300
Ответ 5
если вы хотите ежедневное резервное копирование//после sql script сохранить в C:\Users\admin\Desktop\DBScript\DBBackUpSQL.sql
DECLARE @pathName NVARCHAR(512),
@databaseName NVARCHAR(512) SET @databaseName = 'Databasename' SET @pathName = 'C:\DBBackup\DBData\DBBackUp' + Convert(varchar(8), GETDATE(), 112) + '_' + Replace((Convert(varchar(8), GETDATE(), 108)),':','-')+ '.bak' BACKUP DATABASE @databaseName TO DISK = @pathName WITH NOFORMAT,
INIT,
NAME = N'',
SKIP,
NOREWIND,
NOUNLOAD,
STATS = 10
GO
откройте планировщик задач
создать задачу- > выбрать вкладку Triggers
Выбрать New
.
Кнопка "Ежедневная радиокамера"
нажмите Ok
Кнопка
затем нажмите вкладку Action
. Выберите "Создать".
Поместите "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE"
-S ADMIN-PC -i "C:\Users\admin\Desktop\DBScript\DBBackUpSQL.sql"
в текстовое поле программы /script (убедитесь, что сопоставлен путь к файлам и поместите двойной кавычек в поле start- > search, и если он найдет затем щелкните его и посмотрите, есть ли резервная копия)
- вышеуказанный путь может быть установлен 100 пишут 90 "C:\Program Files\Microsoft SQL Server\90\Tools\Binn\SQLCMD.EXE" -S ADMIN-PC -i
"C:\Users\admin\Desktop\DBScript\DBBackUpSQL.sql"
затем нажмите кнопку ok
script будет выполняться вовремя, которое вы выбираете на вкладке Триггер ежедневно
наслаждайтесь этим.............