很简单的东西。
首先,用存储过程封装你要处理的语句。
明白没有
什么玩意都要例子,这个玩意儿真没有。要是搞不明白,搞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定时删除数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)