×

局域网自动备份删除SQL

hqy hqy 发表于2022-07-12 11:51:56 浏览590 评论0

抢沙发发表评论

作业的操作


企业管理器

--管理

--SQL Server代理

--右键作业

--新建作业

--"常规"项中输入作业名称

--"步骤"项

--新建

--"步骤名"中输入步骤名

--"类型"中选择"Transact-SQL 脚本(TSQL)" --如:下面的SQL腳本

--"数据库"选择执行命令的数据库

--"命令"中输入要执行的语句:

                      EXEC 存储过程名 ... --该存储过程用于创建表


--确定

--"调度"项

--新建调度

--"名称"中输入调度名称

--"调度类型"中选择你的作业执行安排

--如果选择"反复出现"

--点"更改"来设置你的时间安排  



然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行


设置方法:

我的电脑--控制面板--管理工具--服务--右键 SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定. 




 -- 以下代码放在作业里做调度,自动备份、自动删除4天前备份



 -- 以下代码放在作业里做调度,自动备份、自动删除4天前备份


 -- 创建映射

 exec  master..xp_cmdshell  ' net use w: /DatabaseBackup$  "password"/user:Roy ' ,NO_OUTPUT

 go

 -- ---2000用游标:

 declare   @s   nvarchar ( 200 ), @del   nvarchar ( 200 )

 select    @s = '' , @del = ''


 declare  datebak  cursor   for

 select  

     [ bak ] = ' backup database   ' + quotename (Name) + '   to disk = '' w: ' + Name + ' _ ' + convert ( varchar ( 8 ), getdate (), 112 ) + ' .bak ''   with init ' ,

     [ del ] = ' exec master..xp_cmdshell  ''  del w: ' + Name + ' _ ' + convert ( varchar ( 8 ), getdate () - 4 , 112 ) + ' .bak '' , no_output '  

 from  master..sysdatabases  where  dbid > 4   -- 不备份系统数据库

 open  datebak


 fetch   next   from  datebak  into   @s , @del

 while   @@fetch_status = 0

     begin

         exec  ( @del )

         exec ( @s )

         fetch   next   from  datebak  into   @s , @del

     end

 close  datebak

 deallocate  datebak

 go

 -- 删除映射

 exec  master..xp_cmdshell  ' net use w: /delete '


 go



 -- 2005用max支持2G的字符串

 declare   @s   nvarchar ( max ), @del   nvarchar ( max )

 select    @s = '' , @del = ''


 select  

     @s = @s +

         char ( 13 ) + ' backup database   ' + quotename (Name) + '   to disk = '' w: ' + Name + ' _ ' + convert ( varchar ( 8 ), getdate (), 112 ) + ' .bak ''   with init ' ,

     @del = @del +

         char ( 13 ) + ' exec master..xp_cmdshell  ''  del w: ' + Name + ' _ ' + convert ( varchar ( 8 ), getdate () - 4 , 112 ) + ' .bak '' , no_output '  


 from  master..sysdatabases  where  dbid > 4   order   by  dbid  asc


 exec  ( @del )


 exec ( @s )





打赏

本文链接:https://www.kinber.cn/post/2462.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客