如何安排一个SQL查询作业每天运行?

我需要知道如何使用最less的必需configuration设置使用SQL Server代理作业每天运行一个SQL查询。

  1. 展开“SQL Server代理”节点并右键单击“SQL Server代理'New Job'节点,然后select'New Job'

  2. 'New Job'窗口中,在'General'选项卡上input作业名称和描述。

  3. select窗口左侧的'Steps' ,然后单击底部的'New'

  4. 'Steps'窗口中input步骤名称,然后select要运行查询的数据库。

  5. 粘贴到要运行到命令窗口中的T-SQL命令,然后单击'OK'

  6. 点击New Job窗口左边的'Schedule'菜单,然后input日程安排信息(例如每天和每个时间)。

  7. 点击'OK' – 这应该是。

(当然,你可以添加其他选项 – 但是我想说的是,你需要设置和安排工作的最低限度)

我在接受的答案中制作了一个animationGIF的步骤。 这是来自MSSQL Server 2012

计划SQL作业

要在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 @job_name=@job_name, @enabled=1, @notify_level_eventlog=0, @notify_level_email=2, @notify_level_netsend=2, @notify_level_page=2, @delete_level=0, @description=@description, @category_name=N'[Uncategorized (Local)]', @owner_login_name=@owner_login_name; -- Add server: EXEC msdb.dbo.sp_add_jobserver @job_name=@job_name; -- Add step to execute SQL: EXEC msdb.dbo.sp_add_jobstep @job_name=@job_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', @database_name=@database_name, @flags=0; -- Update job to set start step: EXEC msdb.dbo.sp_update_job @job_name=@job_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, @description=@description, @category_name=N'[Uncategorized (Local)]', @owner_login_name=@owner_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 @job_name=@job_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 

这是一个示例代码:

 Exec sp_add_schedule @schedule_name = N'SchedulName' @freq_type = 1 @active_start_time = 08300 

如果你想每日备份/ /以下的SQL脚本存储在C:\用户\pipe理\桌面\ 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 

打开任务计划程序

创build任务 – >selectTriggers选项卡selectNew

buttonselect每日单选button

单击Okbutton

然后单击Action选项卡select新build。

button放在程序中的"C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE" -S ADMIN-PC -i "C:\Users\admin\Desktop\DBScript\DBBackUpSQL.sql"脚本文本框(确保匹配您的文件path,并把双引号的path在开始 – >search框,如果发现然后点击它,看看备份是否存在)

– 上面的path可能是insted 100写90 "C:\Program Files\Microsoft SQL Server\90\Tools\Binn\SQLCMD.EXE" -S ADMIN-PC -i "C:\Users\admin\Desktop\DBScript\DBBackUpSQL.sql"

然后点击确定button

脚本将按照您在“触发器”选项卡上每天select的时间执行

好好享受………….