0.打开 SQL server 代理服务
选择计算机右键——>管理——>服务与应用程序——>服务——>SQL server 代理
然后把SQL server 代理(MSSQLSERVER)启动,并设置成自动(如果只是测试可直接在数据库启动)
1. SQL Server 代理 ( 启动状态 ) → 作业(右键)→新建作业
注意 SQLServer代理要启动。 右键 --启动
2. 如图 数据库选择必须对应的数据库
在此举例为执行存储过程(存储过程见文章末尾)
exec_demo
exec proInsertTable
新建计划
plantime plan_
如图已经新增定时任务
注意:上图 如果开始作业成功 ,结果执行作业失败,也有可能是因为你 的表里 没有符合条件的数据,导致的执行失败。
如下图所示效果 表示执行作业成功了。
.
.
.
.
.
PS:新建 数据库表USERINFO 的存储过程 proInsertTable
创建存储过程 proInsertTable
--创建存储过程 proInsertTable
USE [DEMO]
GO
/****** Object: StoredProcedure [dbo].[proInsertTable] Script Date: 01/11/2020 09:43:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE proc [dbo].[proInsertTable]
as
begin
INSERT [dbo].[USERINFO] ([uName], [uAge], [uWeight]) VALUES (N'测试1', N'18', N'100')
end
GO
PS:新建 数据库表USERINFO
创建表 DEMO
USE [DEMO]
GO
/****** Object: Table [dbo].[USERINFO] Script Date: 01/11/2020 09:44:36 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[USERINFO](
[uName] [nvarchar](50) NULL,
[uAge] [nchar](10) NULL,
[uWeight] [nchar](10) NULL,
[creationTime] [datetime] NULL,
[ID] [int] IDENTITY(1,1) NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[USERINFO] ADD CONSTRAINT [DF_USERINFO_creationTime] DEFAULT (getdate()) FOR [creationTime]
GO
定时 删除某表数据 (删除30分钟以前的数据)
ps:假设现在时间为11点整,删除 10点30以前的数据
存储过程–删除 某表数据
USE [DEMO]
GO
/****** Object: StoredProcedure [dbo].[proInsertTable] Script Date: 01/11/2020 11:07:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[proInsertTable]
as
begin
delete from userinfo where creationTime < dateadd(minute,-30,GETDATE())
end
PS:新建好删除的存储过程,再按照上面 新建作业进行操作即可,完成定时删除某表数据
sql语句—删除 某表数据
--查询 10点30以前的数据,现在 时间为11点整
select * from userinfo
where creationTime < dateadd(minute,-30,GETDATE())
order by creationTime desc
--删除 10点30以前的数据,现在时间为11点整
delete from userinfo
where creationTime < dateadd(minute,-30,GETDATE())