MSSQL自动作业:简单入门教程

什么是MSSQL自动作业?

MSSQL自动作业是一种可以定时执行指定任务的功能,与计划任务类似,但更加灵活方便。它可以在无需手动干预的情况下,按照预先设定好的计划,执行指定的数据库任务。

在MSSQL中,自动作业是由SQL Server代理服务(SQL Server Agent)来管理执行的。可以通过SSMS(SQL Server Management Studio)来管理和配置这里面的自动作业。

如何创建MSSQL自动作业?

第一步:创建一个新的自动作业

使用SSMS打开数据库服务器,展开SQL Server代理服务,右击“自动作业”并选择“新建作业”:

USE [msdb]

GO

EXEC msdb.dbo.sp_add_job @job_name=N'NewJob',

@enabled=1,

@notify_level_eventlog=0,

@notify_level_email=0,

@notify_level_netsend=0,

@notify_level_page=0,

@delete_level=0,

@description=N'This is a new job for MSSQL Server',

@category_name=N'[Uncategorized (Local)]',

@owner_login_name=N'sa',

@job_id = @jobId OUTPUT

SELECT @RetVal = @RetVal + @@error

此时会出现一个“新建作业”对话框,需要设置作业的基本信息。其中,名称和描述是必填项,其余可按照实际情况自行设置。

第二步:创建作业步骤

创建作业步骤相当于给这个自动作业指定需要执行的操作。右击新建好的作业,选择“新建作业步骤”:

USE [msdb]

GO

EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'NewStep',

@step_id=1,

@cmdexec_success_code=0,

@on_success_action=1,

@on_success_step_id=0,

@on_fail_action=2,

@on_fail_step_id=0,

@retry_attempts=0,

@retry_interval=0,

@os_run_priority=0, @subsystem=N'TSQL',

@command=N'SELECT 1;',

@database_name=N'master',

@flags=0

IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1

IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(LOCAL)'

IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

此时,会出现“新建步骤”对话框,需要设置步骤的基本信息,其中关键步骤是在“命令”框内输入需要执行的SQL脚本。

第三步:设置自动作业的计划

在完成作业步骤的设置后,可以设置该自动作业的执行计划,用来指定何时和如何执行该作业。右击作业,选择“属性”,并切换到“计划”选项卡:

USE [msdb]

GO

EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=N'NewSchedule',

@enabled=1,

@freq_type=8, --日

@freq_interval=1,

@freq_subday_type=1,

@freq_subday_interval=0,

@freq_relative_interval=0,

@freq_recurrence_factor=0,

@active_start_date=20190101,

@active_end_date=99991231,

@active_start_time=0,

@active_end_time=235959,

@schedule_uid=N'01234567-abcd-ef01-2345-fedcba987654'

IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(LOCAL)'

IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

COMMIT TRANSACTION

在“新建作业计划”对话框中,需要设置计划信息,包括作业的频率、时间范围等。其中,频率包括一次、分、小时、日、周、月几种选项。

如何管理和修改MSSQL自动作业?

管理自动作业

使用SSMS打开SQL Server代理服务,展开“自动作业”节点,在这里可以看到已经创建好的自动作业,右击指定的作业可以选择编辑、启动、停止、删除等操作。

修改作业步骤

如果需要修改自动作业的执行步骤,可以右击该自动作业并选择“属性”,在“步骤”选项卡中可以修改相关的设置。

修改作业计划

如果需要修改自动作业的计划,可以右击该自动作业并选择“属性”,在“计划”选项卡中可以修改相关的设置。

如何实现MSSQL自动作业?

MSSQL自动作业可以通过SQL Server代理服务(SQL Server Agent)来实现。在开启SQL Server Agent服务后,使用SSMS可以通过界面操作来创建、管理和执行自动作业。此外,还可以通过使用SQL语句来实现自动作业,包括创建作业、新建作业步骤、设置作业计划等。

总结

MSSQL自动作业是数据库管理中非常重要的一个功能,可以大大提高数据管理的效率。通过本文的介绍,可以看到创建和管理MSSQL自动作业的具体步骤,包括创建自动作业、新建作业步骤、设置作业计划等。同时,使用SQL语句来实现自动作业也是一种非常方便的方式,可以根据实际情况灵活运用。通过学习和掌握这些知识,可以帮助管理员更好地管理和维护数据库。

数据库标签