定时删除数据MSSQL详解(定时删除数据 mssql)

以定时删除数据MSSQL为例,作为一名数据库DBA,不仅要管理安装升级数据库,也要定期清理无用数据。在MSSQL中,可以构建定时删除数据脚本,来定期删除无用数据,保持数据库状态。本文将详细阐述如何构建定时删除MSSQL数据脚本。

首先,需要在MSSQL中建立一个相应的存储过程,用于执行定时删除数据。具体步骤如下:1、打开MSSQL的新查询窗口;2、输入“CREATE PROCEDURE dbo.DeleteData”;3、在存储过程中定义需要删除的表名、删除条件以及删除操作;4、最后输入“EXECUTE dbo.DeleteData”,完成创建存储过程。

下面就编写定时删除数据的脚本,以16点删除数据表(DataTable)中MatchDate字段日期早于昨天的数据为例:

–step1: 创建任务

— SQL Server Agent的右键菜单–新建任务–即可增加执行定时任务

USE [msdb]

GO

EXEC dbo.sp_add_job

@job_name = N’DeleteData_Job’ — 任务名称,随便起

GO

–step2: 添加任务步骤

EXEC dbo.sp_add_jobstep

@job_name = N’DeleteData_Job’,

@step_name = N’Step1′, — 步骤名

@subsystem = N’TSQL’, — 使用TSQL语句

@command = N’exec DeleteData’, — 任务步骤要执行的语句

@retry_attempts = 0, — 语句执行结果失败,重试次数

@retry_interval = 1 — 重试时间间隔

GO

–step3:设置或修改计划

USE [msdb]

GO

EXEC dbo.sp_add_jobschedule

@job_name = N’DeleteData_Job’,

@name=N’RunTime’, — 计划的名称

@enabled=1, — 激活计划

@freq_type=4, — 频率类型1:WeekLine,4:Daily

@freq_interval =1, –值1–1天

@freq_subday_type=1, — 值1–按照小时

@active_start_date=20190716, –启动日期

@active_start_time=160000 –启动时间 16点

GO

–Step4: 启动任务

— SQL Server Agent的右键菜单–启动任务–即可启动任务

USE [msdb]

GO

EXEC dbo.sp_start_job N’DeleteData_Job’

GO

定时删除数据MSSQL脚本构建完毕,编译运行之后,DataTable中MatchDate字段日期早于昨天的数据,将每天16点自动删除,从而实现数据定时删除的功能。但这只是实现数据定时删除的简单示例,如果实际业务需求多了上述步骤就会比较复杂,以此方法可用于定时删除外,也可以用于定时更新、定时备份等数据库管理相关操作。


数据运维技术 » 定时删除数据MSSQL详解(定时删除数据 mssql)