如何定时删除SQL数据库

如何定时删除SQL数据库,第1张

如果是就一次的话就是

waitfor

delay

'02:00'

exec

sp_MSForEachTable

就是两分钟后执行存储过程sp_MSForEachTable,这个存储过程是微软为公开的,不过貌似不是很好用。

如果是在特定时间,比如晚上

10:20

BEGIN

WAITFOR

TIME

'22:20'

EXECUTE

sp_MSForEachTable

END

你可以自建一个存储过程,sp_DeleteAllData

CREATE

PROCEDURE

sp_DeleteAllData

AS

EXEC

sp_MSForEachTable

'ALTER

TABLE

NOCHECK

CONSTRAINT

ALL'

EXEC

sp_MSForEachTable

'ALTER

TABLE

DISABLE

TRIGGER

ALL'

EXEC

sp_MSForEachTable

'DELETE

FROM

'

EXEC

sp_MSForEachTable

'ALTER

TABLE

CHECK

CONSTRAINT

ALL'

EXEC

sp_MSForEachTable

'ALTER

TABLE

ENABLE

TRIGGER

ALL'

EXEC

sp_MSFOREACHTABLE

'SELECT

FROM

'

GO

一般来说3—5为一个周期最好。

数据库日志文件是随着时间增长而增长的,如果长时间不清理,文件会变得特别大,因此需要定期清空,但是日志文件是数据库的重要依据,不用日志文件也是不明智的。单库的可以手工清除,库多了、或者临时没有来得及清理,可能硬盘空间就会占满了,影响访问。

因此设置自动清数据库日志文件还是比较实用的。

手动清理方法:做好数据备份,右键单击对应的数据库,选择''属性"---''选项",把故障还原模型设定为简单,确定后关闭;再右键单击该数据库,''所有任务"---'收缩数据库",确认后即可清除日志文件,最后记得重新选择''属性",把故障还原模型设定为完全。

自动清理方法:同样是利用 sql server 代理服务,执行自动作业

打开企业管理器,进入“管理”-“ sql server 代理服务”-“作业”,在右侧窗口点击右键,选择“新建作业”。“常规”选项卡中,填写作业名称,具体描述,注意所有者最好还是用 sa 或者默认的管理帐号。

转到“步骤”选项卡,新建作业步骤,填写步骤名称,类型为脚本,数据库

为需要清理日志的数据库,在下边命令中填写以下命令:

SqI 代码

1

DUMP TRANSACTION 数

据库名称 WITH NO LOG

DBCC SHRINKFILE (数据库日志文件名,1)

或者使用

2

DUMP TRANSACT1ON DBName WITH NO _L0G

BACKUP LOG DBName WITH NO LOG

DBCC SIIRTNKDATABASE ( DBName )

DBCC SIIRTNKFTLE (1)

上边的数据库名称填写需要维护的数据库名称,数据库日志文件名填写其对应的日志文件名,注意,不是资源管理器里看到的带后缀名的那个名字,而是企业管理器里,数据库属性里日志选项卡中日志的名字(通常也只是差一个后缀名…),确定后添加一个作业步骤。如果需要维护多个数据库,用上述方法重复添加作业步骤,注意每个步骤成功或失败后的动作即可,最后选择一下开始的步骤。

//1你创建一个insert触发器,每当数据插入的时候判断一下是不是有你要删除的数据。

//2你还可以创建一个存储过程,然后再做一个作业任务,让 sql server 每多长时间删除一次。

下面给出的是第一种办法的insert触发器,不过这样每次insert 他都会执行一次,对数据库有点耗资源

create TRIGGER Trigger1

ON dbousers

FOR insert

AS

Begin

declare @mintime datetime,@maxtime datetime

select @mintime =min(时间),@maxtime =max(时间) from Alarm

delete from Alarm where DATEDIFF(d,@mintime ,@maxtime )>=7

End

以上就是关于如何定时删除SQL数据库全部的内容,包括:如何定时删除SQL数据库、数据库定期清理数据多久合适、sql server 2005 如何实现对表数据进行定期删除等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/sjk/9833592.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存