北方站长站
客服热线:0632-5117766

SQL SERVER2000备份和恢复存储过程

[2007-03-15 00:00:00] 作者:Northz.com 来源:北方站长网

Tags:存储 过程 恢复 备份 文件 @filename begin end 数据库

  

wdi北方站长站
  /*备份数据库的过程*/ wdi北方站长站
if exists( wdi北方站长站
 select * from sysobjects wdi北方站长站
  where name=’pr_backup_db’ and xtype=’p’ wdi北方站长站
          ) wdi北方站长站
begin wdi北方站长站
 drop proc pr_backup_db wdi北方站长站
end wdi北方站长站
go wdi北方站长站
create proc pr_backup_db wdi北方站长站
@flag varchar(20) out, wdi北方站长站
@backup_db_name varchar(128), wdi北方站长站
@filename varchar(1000)  --路径+文件名字 wdi北方站长站
as wdi北方站长站
declare @sql nvarchar(4000),@par nvarchar(1000) wdi北方站长站
if not exists( wdi北方站长站
 select * from master..sysdatabases wdi北方站长站
  where name=@backup_db_name wdi北方站长站
  ) wdi北方站长站
begin wdi北方站长站
 select @flag=’db not exist’  /*数据库不存在*/ wdi北方站长站
 return wdi北方站长站
end wdi北方站长站
else wdi北方站长站
begin wdi北方站长站
 if right(@filename,1)<>’/’ and charindex(’/’,@filename)<>0 wdi北方站长站
 begin wdi北方站长站
  select @par=’@filename varchar(1000)’ wdi北方站长站
  select @sql=’BACKUP DATABASE ’+@backup_db_name+’ to disk=@filename with init’ wdi北方站长站
  execute sp_executesql @sql,@par,@filename wdi北方站长站
  select @flag=’ok’  wdi北方站长站
  return wdi北方站长站
 end wdi北方站长站
 else wdi北方站长站
 begin wdi北方站长站
  select @flag=’file type error’  /*参数@filename输入格式错误*/ wdi北方站长站
  return wdi北方站长站
 end wdi北方站长站
end wdi北方站长站
GO wdi北方站长站
说明:pr_backup_db过程是备份你的数据库 wdi北方站长站
  wdi北方站长站
  wdi北方站长站
/*创建函数,得到文件得路径*/ wdi北方站长站
if exists( wdi北方站长站
 select * from sysobjects wdi北方站长站
  where name=’fn_GetFilePath’ and xtype=’fn’ wdi北方站长站
        ) wdi北方站长站
begin wdi北方站长站
 drop function fn_GetFilePath wdi北方站长站
end wdi北方站长站
go wdi北方站长站
create function fn_GetFilePath(@filename nvarchar(260)) wdi北方站长站
returns nvarchar(260)    wdi北方站长站
as wdi北方站长站
begin wdi北方站长站
 declare @file_path nvarchar(260) wdi北方站长站
 declare @filename_reverse nvarchar(260) wdi北方站长站
 select @filename_reverse=reverse(@filename) wdi北方站长站
 select @file_path=substring(@filename,1,len(@filename)+1-charindex(’/’,@filename_reverse)) wdi北方站长站
 return @file_path wdi北方站长站
end wdi北方站长站
wdi北方站长站
GO wdi北方站长站
wdi北方站长站
/*恢复数据库的过程*/ wdi北方站长站
if exists( wdi北方站长站
 select * from sysobjects wdi北方站长站
  where name=’pr_restore_db’ and xtype=’p’ wdi北方站长站
          ) wdi北方站长站
begin wdi北方站长站
 drop proc pr_restore_db wdi北方站长站
end wdi北方站长站
go wdi北方站长站
CREATE  proc pr_restore_db     wdi北方站长站
@flag varchar(20) out,    /*过程运行的状态标志,是输入参数*/       wdi北方站长站
@restore_db_name nvarchar(128),  /*要恢复的数据名字*/ wdi北方站长站
@filename nvarchar(260)         /*备份文件存放的路径+备份文件名字*/ wdi北方站长站
as wdi北方站长站
declare @proc_result tinyint  /*返回系统存储过程xp_cmdshell运行结果*/ wdi北方站长站
declare @loop_time smallint  /*循环次数*/ wdi北方站长站
declare @max_ids smallint    /*@tem表的ids列最大数*/ wdi北方站长站
declare @file_bak_path nvarchar(260)  /*原数据库存放路径*/ wdi北方站长站
declare @flag_file bit   /*文件存放标志*/ wdi北方站长站
declare @master_path nvarchar(260)  /*数据库master文件路径*/ wdi北方站长站
declare @sql nvarchar(4000),@par nvarchar(1000) wdi北方站长站
declare @sql_sub nvarchar(4000) wdi北方站长站
declare @sql_cmd nvarchar(100)  wdi北方站长站
declare @sql_kill nvarchar(100)  wdi北方站长站
/* wdi北方站长站
判断参数@filename文件格式合法性,以防止用户输入类似d: 或者 c:/a/ 等非法文件名 wdi北方站长站
参数@filename里面必须有’/’并且不以’/’结尾 wdi北方站长站
*/ wdi北方站长站
if right(@filename,1)<>’/’ and charindex(’/’,@filename)<>0 wdi北方站长站
begin  wdi北方站长站
 select @sql_cmd=’dir ’+@filename wdi北方站长站
 EXEC @proc_result = master..xp_cmdshell @sql_cmd,no_output wdi北方站长站
 IF (@proc_result<>0)  /*系统存储过程xp_cmdshell返回代码值:0(成功)或1(失败)*/ wdi北方站长站
 begin wdi北方站长站
  select @flag=’not exist’   /*备份文件不存在*/ wdi北方站长站
  return  /*退出过程*/ wdi北方站长站
 end wdi北方站长站
 /*创建临时表,保存由备份集内包含的数据库和日志文件列表组成的结果集*/ wdi北方站长站
 create table #tem( wdi北方站长站
     LogicalName nvarchar(128), /*文件的逻辑名称*/ wdi北方站长站
     PhysicalName nvarchar(260) , /*文件的物理名称或操作系统名称*/ wdi北方站长站
     Type char(1),  /*数据文件 (D) 或日志文件 (L)*/ wdi北方站长站
     FileGroupName nvarchar(128), /*包含文件的文件组名称*/ wdi北方站长站
     [Size] numeric(20,0),  /*当前大小(以字节为单位)*/ wdi北方站长站
     [MaxSize] numeric(20,0)  /*允许的最大大小(以字节为单位)*/ wdi北方站长站
   )

 

News

 

info

 

down

出售手机裁听器,手机跟踪定位系统    企业网站,网城,购物网,都市导购,校园网    网上书店系统    上海电信机房服务器托管,双线主机托管    美女图片馆    15G 高清晰图片资源 无水印    室内装潢材料新产品杰威尔艺术漆    收一万ip的美女图片    大量收购个人网址导航网站    出售网址站PR=4alexa=119,764    

下一篇链接:将Excel中的数据导入到SQL Server 2000数据库中

上一篇链接:全接触sqlserver异常与孤立事务

评论】 【打印】 【加入收藏】 【关闭→论坛 →博客 →数据中心

 共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面