加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQLserver2008创建数据库SQL脚本备份语句

发布时间:2020-12-12 12:48:45 所属栏目:MsSql教程 来源:网络整理
导读:create table #backDB(name varchar(20))insert into #backDB(name)values('Member') --创建一条语句表示需要备份的数据库declare @name varchar(20)set @name=''select top 1 @name=name from #backDBwhile(ISNULL(@name,'')'')begindeclare @filename varc
create table #backDB(name varchar(20))
	insert into #backDB(name)values('Member')  --创建一条语句表示需要备份的数据库
	
	declare @name varchar(20)
	set @name=''
	select top 1 @name=name from #backDB
	while(ISNULL(@name,'')<>'')
	begin

		declare @filename varchar(1024)
		declare @path varchar(1024)
		set @path = N'D:ServerDBfileBackup'+@name+'';   --需要文件备份存储的物理路径 路径需要存在否则执行报错

		declare @extension_name varchar(16)
		set @extension_name = N'bak';

		set @filename = convert(varchar(1024),getdate(),120)
		set @filename = replace(@filename,':','')
		set @filename = replace(@filename,'-',' ','')

		set @filename = @filename + '_' + convert (varchar(3),datepart(ms,getdate())) + N'.' + @extension_name

		-- 得到完整目标文件,数据库将备份到这个中
		set @filename = @path + @filename

		-- select @filename
		declare @backname varchar(100)
		 set @backname=N''+@name+'-完整 数据库 备份'

		-- 开始备份,MYDB 是需要备份的数据库,COMPRESSION 参数表示压缩,可节省磁盘空间

		backup database @name to disk =@filename with noformat,noinit,name = @backname,skip,norewind,nounload,stats = 10,COMPRESSION

		-- 删除30天前的备份文件

		declare @olddate datetime
		select @olddate=getdate()-30

		-- 执行删除 (SQL 2008 具备)
		execute master.dbo.xp_delete_file 0,@path,@extension_name,@olddate,1
		
		
		
		delete from #backDB where name=@name
		set @name=''
		select top 1 @name=name from #backDB
	end

	drop table #backDB

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读