欢迎来到天天文库
浏览记录
ID:33159831
大小:110.50 KB
页数:34页
时间:2019-02-21
《[理学]ms sql数据库备份和恢复存储过程》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、MSSQL数据库备份和恢复存储过程今天闲散没有事情,就写拉数据库备份和恢复存储过程(和大家交流一下)ifexists(select*fromsysobjectswherename=''''''''pr_backup_db''''''''andxtype=''''''''p'''''''')begindropprocpr_backup_dbendgo/*备份数据库*/createprocpr_backup_db@flagvarchar(10)out,@backup_db_namevarchar(128),@filenamevarchar(1000)--路径+文件名字asdecla
2、re@sqlnvarchar(4000),@parnvarchar(1000)select@par=''''''''@filenamevarchar(1000)''''''''select@sql=''''''''BACKUPDATABASE''''''''+@backup_db_name+''''''''todisk=@filenamewithinit''''''''executesp_executesql@sql,@par,@filenameselect@flag=''''''''ok''''''''goifexists(select*fromsysobjectswhere
3、name=''''''''fn_GetFilePath''''''''andxtype=''''''''fn'''''''')begindropfunctionfn_GetFilePathendgo/*创建函数,得到文件得路径*/createfunctionfn_GetFilePath(@filenamenvarchar(260))returnsnvarchar(260)asbegindeclare@file_pathnvarchar(260)declare@filename_reversenvarchar(260)select@filename_reverse=reverse
4、(@filename)select@file_path=substring(@filename,1,len(@filename)+1-charindex('''''''''''''''',@filename_reverse))return@file_pathendgoifexists(select*fromsysobjectswherename=''''''''pr_restore_db''''''''andxtype=''''''''p'''''''')begindropprocpr_restore_dbendgocreateprocpr_restore_db/*恢复数据库
5、*/@flagvarchar(20)out,/*过程运行的状态标志,是输入参数*/@restore_db_namenvarchar(128),/*要恢复的数据名字*/@filenamenvarchar(260)/*备份文件存放的路径+备份文件名字*/asdeclare@proc_resulttinyint/*返回系统存储过程xp_cmdshell运行结果*/declare@loop_timesmallint/*循环次数*/declare@max_idssmallint/*@tem表的ids列最大数*/declare@file_bak_pathnvarchar(260)/*原数据
6、库存放路径*/declare@flag_filebit/*文件存放标志*/declare@master_pathnvarchar(260)/*数据库master文件路径*/declare@sqlnvarchar(4000),@parnvarchar(1000)declare@sql_subnvarchar(4000)declare@sql_cmdnvarchar(4000)/*判断参数@filename文件格式合法性,以防止用户输入类似d:或者c:a等非法文件名参数@filename里面必须有''''''''''''''''并且不以''''''''''''''''结尾*
7、/ifright(@filename,1)<>''''''''''''''''andcharindex('''''''''''''''',@filename)<>0beginselect@sql_cmd=''''''''dir''''''''+@filenameEXEC@proc_result=master..xp_cmdshell@sql_cmd,no_outputIF(@proc_result<>0)/*系统存储过程xp_cmdshell返回代码值:0(成功)或1(失败)*/begi
此文档下载收益归作者所有