alt

JOB

在SQL Server中,JOB属于常用功能,我们经常需要通过JOB来执行一些定时的作业任务,例如数据备份、存储过程、SSIS任务、SSAS刷新等等。

通常情况下,我们都是在SSMS中对JOB进行创建、删除、维护等任务的。

前置条件

使用JOB功能,需要我们做一些前置的准备工作。

1.启用SQL Server代理功能。

在Windows开始面板中,找到SQL Server Configuration Manager工具。

alt

在SQL Server服务中,启动SQL Server代理。

alt

2.设置SQL Server代理内置账户。

SQL Server代理默认的内置账户为“Network Service”,我们需要将其切换一下。

alt

将“Network Service”切换为“Local System”。

这个内置账户,会影响JOB运行是否成功。

使用实例

案例数据:

alt

在白茶本机的数据库中,存在名为“BaiCha”的数据库,存在名为“ODS_BaiCha”的表。

使用实例:

为“ODS_BaiCha”表创建备份,并添加JOB执行备份任务。

alt

1.新增数据库

在数据库位置点击鼠标右键,创建名为“Backup_Table”的数据库。

alt

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
)

结果如下:

alt

alt

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

结果如下:

alt

我们可以执行一下存储过程,来看看结果是否符合我们预期。

alt

结果如下:

alt

这段代码需要我们保留下来,后面的JOB会用到这段代码。

alt

从结果上可以看到,数据已经完成插入动作,符合我们预期的结果。

4.创建JOB定时任务

在SQL Server代理下方的作业目录下,鼠标右键选择新建作业。

alt

4.1常规面板配置:

对JOB任务进行命名,这里白茶命名为“Backup_Test”,并勾选启用按钮。

alt

4.2步骤面板配置:

选择新建步骤,对步骤进行命名。选择我们新建的数据库,并在命令窗口输入上面执行存储过程的代码。

USE [Backup_Table]
GO
DECLARE @return_value int
EXEC    @return_value = [dbo].[BaiCha]
SELECT 'Return Value' = @return_value
GO

alt

高级面板白茶这里就不配置了,小伙伴们可以酌情调整。

4.3计划面板配置:

选择新建计划,对计划进行命名,配置计划的相关参数。

alt

到这里,配置基本完成。

后面的警报面板、通知面板、目标面板,白茶这里就不配置了,实际项目中小伙伴们可以酌情进行设置。

5.配置完成,执行JOB

我们可以选择执行任务,来查看一下JOB配置是否成功。

alt

结果如下:

alt

出现此页面,即为执行成功。

alt

从结果我们可以看到,JOB作业执行成功,数据已经插入到目标表中。 alt

alt

这里是白茶,一个PowerBI的初学者。 alt