请问如果要在数据库SQL Server 2000中设定定期删除功能,比如每天八点开始删除两个月之前的数据,怎么写

请问如果要在数据库SQL Server 2000中设定定期删除功能,比如每天八点开始删除两个月之前的数据,怎么写,第1张

很简单的东西。

首先,用存储过程封装你要处理的语句。

其次,用数据库作业来调度存储过程。

明白没有

什么玩意都要例子,这个玩意儿真没有。要是搞不明白,搞qq远程,让本人给讲解。

一般用触发器来实现,也可以通过设置代理的方法实现:

如果在SQL Server 里需要定时或者每隔一段时间执行某个存储过程或3200字符以内的SQL语句时,

可以用管理->SQL Server代理->作业来实现。

1、管理->SQL Server代理->作业(按鼠标右键)->新建作业->

2、新建作业属性(常规)->名称[自定义本次作业的名称]->启用的方框内是勾号->

分类处可选择也可用默认的[未分类(本地)]->所有者默认为登录SQL Server用户[也可选其它的登录]->

描述[填写本次工作详细描述内容];

[ 创建作业分类的步骤:

SQL Server代理->作业->右键选所有任务->添加、修改、删除 ]

3、新建作业属性(步骤)->新建->步骤名[自定义第一步骤名称]->类型[Transact-SQL(TSQL)脚本]->

数据库[要 *** 作的数据库]->命令

[ 如果是简单的SQL直接写进去即可,也可用打开按钮输入一个已写好的sql文件

如果要执行存储过程,填 exec p_procedure_name v_parameter1,[ v_parameter2…v_parameterN]

] ->确定

(如果有多个步骤,可以再次调用下面的新建按钮;也可以对已有的多个步骤插入、编辑、删除);

4、建作业属性(调度)->新建调度->名称[自定义调度名称]->启用的方框内是勾号->调度->反复出现->

更改[调度时间表]->确定

(如果只要保存此作业,不要定时做可以把启用的方框内是勾号去掉);

5、建作业属性(通知)->用默认的通知方法就好[当作业失败时,写入Windows应用程序系统日志] ->确定。

就是删除二个月之前的所有数据喽。建立一个任务,任务的内容是:

delete from KqResult where 时间字段<getdate()-2个月,减去2个月应该有函数的,找下。

然后设置定时执行这个任务就可以了呀。

1、使用BETWEEN关键字根据时间字段删除一定时间内的记录

DELETE FROM 表名 WHERE 时间字段 BETWEEN 开始时间 AND 结束时间

示例:

DELETE FROM tb WHERE CreateTime BETWEEN '2017-01-01 00:00:00' AND '2017-02-01 00:00:00'

--删除tb表中2017年1月1日到2017年2月1日的数据

2、使用时间字段比较大小来确定删除范围

--语法:

DELETE FROM 表名 WHERE 时间字段>=开始时间 AND 时间字段<=结束时间

示例:

DELETE FROM tb WHERE CreateTime>='2017-01-01 00:00:00' AND CreateTime<='2017-02-01 00:00:00'

3、结构化查询语言(Structured Query Language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;

4、sql 语句就是对数据库进行 *** 作的一种语言。

5、记录筛选

sql="select from 数据表 where字段名=字段值 order by字段名[desc]"(按某个字段值降序排列。默认升序ASC)

sql="select from 数据表 where字段名like '%字段值%' order by 字段名 [desc]"

sql="select top 10 from 数据表 where字段名=字段值 order by 字段名 [desc]"

sql="select top 10 from 数据表 order by 字段名 [desc]"

sql="select from 数据表 where字段名in ('值1','值2','值3')"

sql="select from 数据表 where字段名between 值1 and 值2"

首先利用数据库自带的命令行工具将数据库备份下来,例如对MySQL将databasename数据库备份到D:\datasql(具体查阅数据库说明书)

mysqldump databasename > "D:\datasql"

然后将该文件以日期参量重名名。如果指定保留N天的数据可能有一定困难,不过既然要求7天,不妨以星期作为区分。

假设文件名具有格式“data_日期sql”,则更名语句为(建议先创建后改名,对于很大的数据库可能要备份很长时间并超过0点)

ren "datasql" "data_%date%sql"

若系统时间格式为“2009-04-05 星期日”,则产生文件“data_2009-04-05 星期日txt”。

获取星期几的语句:%date:~11,3%

其中11表示从第11个字符开始(从0开始计算),总共截取3个字符。由此可获得字符串“星期日”。重名名前,删除以data_开头,包含“星期日”的文件

del "data_%date:~11,3%sql"

这样就把上星期的那个文件删除了。

注意:如果系统日期格式与上面的不一致,数字需重新计算,特别是若日期中含有“/”、“:”等字符会导致创建文件失败,此时年月日星期均需手动提取,例如对“04/05/2009 Sun”,应使用“%DATE:~6,4%%DATE:~0,2%%DATE:~3,2%%DATE:~11,3%”得到“20090405Sun”。查看日期格式可使用“echo %date%”。

另外,如果某项(时间格式、文件名、路径等)包含空格则必须使用引号。

脚本源代码

mysqldump databasename > "D:\datasql"

del "D:\data_%date:~11,3%sql"

ren "D:\datasql" "data_%date%sql"

编为一个bat文件,添加计划任务,每天定时执行即可。

以上就是关于请问如果要在数据库SQL Server 2000中设定定期删除功能,比如每天八点开始删除两个月之前的数据,怎么写全部的内容,包括:请问如果要在数据库SQL Server 2000中设定定期删除功能,比如每天八点开始删除两个月之前的数据,怎么写、如何自动删除数据库表里的数据、sql server 2000定时删除数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9880433.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存