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

sqlserver 存储过程备份

发布时间:2020-12-12 14:43:44 所属栏目:MsSql教程 来源:网络整理
导读:create proc p_backupdb ?? @dbname sysname='',--要备份的数据库名称,不指定则备份当前数据库 ?? @bkpath nvarchar(260)='',--备份文件的存放目录,不指定则使用SQL默认的备份目录 ?? @bkfname nvarchar(260)='',--备份文件名,文件名中可以用DBNAME代表数
create proc p_backupdb ?? @dbname sysname='',--要备份的数据库名称,不指定则备份当前数据库 ?? @bkpath nvarchar(260)='',--备份文件的存放目录,不指定则使用SQL默认的备份目录 ?? @bkfname nvarchar(260)='',--备份文件名,文件名中可以用DBNAME代表数据库名,DATE代表日期,TIME代表时间 ?? @bktype nvarchar(10)='DB',--备份类型:'DB'备份数据库,'DF' 差异备份,'LOG' 日志备份 ?? @appendfile bit=1 --追加/覆盖备份文件 ?? as ?? declare @sql varchar(8000) ?? if isnull(@dbname,'')='' set @dbname=db_name() ?? if isnull(@bkpath,'')='' set @bkpath=dbo.f_getdbpath(null) ?? if isnull(@bkfname,'')='' set @bkfname='DBNAME_DATE_TIME.BAK' ?? set @bkfname=replace(replace(replace(@bkfname,'DBNAME',@dbname) ??,'DATE',convert(varchar,getdate(),112)) ??,'TIME',replace(convert(varchar,108),':','')) ?? set @sql='backup '+case @bktype when 'LOG' then 'log ' else 'database ' end +@dbname ?? +' to disk='''+@bkpath+@bkfname ?? +''' with '+case @bktype when 'DF' then 'DIFFERENTIAL,' else '' end ?? +case @appendfile when 1 then 'NOINIT' else 'INIT' end ?? print @sql ?? exec(@sql) ?? go ?? exec p_backupdb @bkpath='F:',@bkfname='db_DATE_db.bak' ?

(编辑:李大同)

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

    推荐文章
      热点阅读