T-SQL语句实现数据库备份与还原

T-SQL语句实现数据库备份与还原

ID:37711946

大小:38.76 KB

页数:11页

时间:2019-05-29

T-SQL语句实现数据库备份与还原_第1页
T-SQL语句实现数据库备份与还原_第2页
T-SQL语句实现数据库备份与还原_第3页
T-SQL语句实现数据库备份与还原_第4页
T-SQL语句实现数据库备份与还原_第5页
资源描述:

《T-SQL语句实现数据库备份与还原》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、--利用T-SQL语句,实现数据库的备份与还原的功能----体现了SQLServer中的四个知识点:----1.获取SQLServer服务器上的默认目录----2.备份SQL语句的使用----3.恢复SQL语句的使用,同时考虑了强制恢复时关闭其他用户进程的处理----4.作业创建SQL语句的使用/*1.--得到数据库的文件目录@dbname指定要取得目录的数据库名如果指定的数据不存在,返回安装SQL时设置的默认数据目录如果指定NULL,则返回默认的SQL备份目录名*//*--调用示例select数据库文件目录=dbo.f_getdbpath('tempdb'),[默认SQLSERVE

2、R数据目录]=dbo.f_getdbpath(''),[默认SQLSERVER备份目录]=dbo.f_getdbpath(null)--*/ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[f_getdbpath]')andxtypein(N'FN',N'IF',N'TF'))dropfunction[dbo].[f_getdbpath]GOcreatefunctionf_getdbpath(@dbnamesysname)returnsnvarchar(260)asbegindeclare@renvarchar(

3、260)if@dbnameisnullordb_id(@dbname)isnullselect@re=rtrim(reverse(filename))frommaster..sysdatabaseswherename='master'elseselect@re=rtrim(reverse(filename))frommaster..sysdatabaseswherename=@dbnameif@dbnameisnullset@re=reverse(substring(@re,charindex('',@re)+5,260))+'BACKUP'elseset@re=reverse(s

4、ubstring(@re,charindex('',@re),260))return(@re)endgo/*2.--备份数据库*//*--调用示例--备份当前数据库execp_backupdb@bkpath='c:',@bkfname='db_DATE_db.bak'--差异备份当前数据库execp_backupdb@bkpath='c:',@bkfname='db_DATE_df.bak',@bktype='DF'--备份当前数据库日志execp_backupdb@bkpath='c:',@bkfname='db_DATE_log.bak',@bktype='L

5、OG'--*/ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[p_backupdb]')andOBJECTPROPERTY(id,N'IsProcedure')=1)dropprocedure[dbo].[p_backupdb]GOcreateprocp_backupdb@dbnamesysname='',--要备份的数据库名称,不指定则备份当前数据库@bkpathnvarchar(260)='',--备份文件的存放目录,不指定则使用SQL默认的备份目录@bkfnamenvarchar(260)='',--备份

6、文件名,文件名中可以用DBNAME代表数据库名,DATE代表日期,TIME代表时间@bktypenvarchar(10)='DB',--备份类型:'DB'备份数据库,'DF'差异备份,'LOG'日志备份@appendfilebit=1--追加/覆盖备份文件asdeclare@sqlvarchar(8000)ifisnull(@dbname,'')=''set@dbname=db_name()ifisnull(@bkpath,'')=''set@bkpath=dbo.f_getdbpath(null)ifisnull(@bkfname,'')=''set@bkfname='

7、DBNAME_DATE_TIME.BAK'set@bkfname=replace(replace(replace(@bkfname,'DBNAME',@dbname),'DATE',convert(varchar,getdate(),112)),'TIME',replace(convert(varchar,getdate(),108),':',''))set@sql='backup'+case@bktypewhen'LOG'then

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。