JOB
在SQL Server中,JOB属于常用功能,我们经常需要通过JOB来执行一些定时的作业任务,例如数据备份、存储过程、SSIS任务、SSAS刷新等等。
通常情况下,我们都是在SSMS中对JOB进行创建、删除、维护等任务的。
前置条件
使用JOB功能,需要我们做一些前置的准备工作。
1.启用SQL Server代理功能。
在Windows开始面板中,找到SQL Server Configuration Manager工具。
在SQL Server服务中,启动SQL Server代理。
2.设置SQL Server代理内置账户。
SQL Server代理默认的内置账户为“Network Service”,我们需要将其切换一下。
将“Network Service”切换为“Local System”。
这个内置账户,会影响JOB运行是否成功。
使用实例
案例数据:
在白茶本机的数据库中,存在名为“BaiCha”的数据库,存在名为“ODS_BaiCha”的表。
使用实例:
为“ODS_BaiCha”表创建备份,并添加JOB执行备份任务。
1.新增数据库
在数据库位置点击鼠标右键,创建名为“Backup_Table”的数据库。
2.新增备份表
在Backup_Table数据库中,为“ODS_BaiCha”表创建备份表,注意各列数据格式。
CREATE TABLE Backup_Table
(
SalesID NVARCHAR(255),
CustomerID FLOAT,
Date DATETIME,
Quantity FLOAT,
BranchName NVARCHAR(255),
DATEKEY FLOAT,
ProductID NVARCHAR(255),
CREATETIME DATETIME
)
结果如下:
3.创建备份存储过程
白茶在这里会创建一个保留历史版本的存储过程。
代码如下:
CREATE Procedure [dbo].[BaiCha]
AS
INSERT INTO Backup_Table.dbo.Backup_Table
([SalesID] ,[CustomerID] ,[Date] ,[Quantity] ,[BranchName] ,[DATEKEY] ,[ProductID],
[CREATETIME])
SELECT *, GETDATE() AS CREATETIME
FROM BaiCha.dbo.ODS_BaiCha
结果如下:
我们可以执行一下存储过程,来看看结果是否符合我们预期。
结果如下:
这段代码需要我们保留下来,后面的JOB会用到这段代码。
从结果上可以看到,数据已经完成插入动作,符合我们预期的结果。
4.创建JOB定时任务
在SQL Server代理下方的作业目录下,鼠标右键选择新建作业。
4.1常规面板配置:
对JOB任务进行命名,这里白茶命名为“Backup_Test”,并勾选启用按钮。
4.2步骤面板配置:
选择新建步骤,对步骤进行命名。选择我们新建的数据库,并在命令窗口输入上面执行存储过程的代码。
USE [Backup_Table]
GO
DECLARE @return_value int
EXEC @return_value = [dbo].[BaiCha]
SELECT 'Return Value' = @return_value
GO
高级面板白茶这里就不配置了,小伙伴们可以酌情调整。
4.3计划面板配置:
选择新建计划,对计划进行命名,配置计划的相关参数。
到这里,配置基本完成。
后面的警报面板、通知面板、目标面板,白茶这里就不配置了,实际项目中小伙伴们可以酌情进行设置。
5.配置完成,执行JOB
我们可以选择执行任务,来查看一下JOB配置是否成功。
结果如下:
出现此页面,即为执行成功。