加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 电商 > 正文

SQL SERVER2000备份和规复存储进程

发布时间:2018-08-25 02:02:38 所属栏目:电商 来源:站长网
导读:/*备份数据库的进程*/ ifexists( select*fromsysobjects wherename=’pr_backup_db’andxtype=’p’ ) begin dropprocpr_backup_db end go createprocpr_backup_db @flagvarchar(20)out, @backup_db_namevarchar(128), @filenamevarchar(1000)--路径+文件
/*备份数据库的进程*/
if exists(
 select * from sysobjects
  where name=’pr_backup_db’ and xtype=’p’
          )
begin
 drop proc pr_backup_db
end
go
create proc pr_backup_db
@flag varchar(20) out,
@backup_db_name varchar(128),
@filename varchar(1000)  --路径+文件名字
as
declare @sql nvarchar(4000),@par nvarchar(1000)
if not exists(
 select * from master..sysdatabases
  where name=@backup_db_name
  )
begin
 select @flag=’db not exist’  /*数据库不存在*/
 return
end
else
begin
 if right(@filename,1)<>’’ and charindex(’’,@filename)<>0
 begin
  select @par=’@filename varchar(1000)’
  select @sql=’BACKUP DATABASE ’+@backup_db_name+’ to disk=@filename with init’
  execute sp_executesql @sql,@par,@filename
  select @flag=’ok’ 
  return
 end
 else
 begin
  select @flag=’file type error’  /*参数@filename输入名目错误*/
  return
 end
end
GO
声名:pr_backup_db进程是备份你的数据库
 
 
/*建设函数,获得文件得路径*/
if exists(
 select * from sysobjects
  where name=’fn_GetFilePath’ and xtype=’fn’
        )
begin
 drop function fn_GetFilePath
end
go
create function fn_GetFilePath(@filename nvarchar(260))
returns nvarchar(260)   
as
begin
 declare @file_path nvarchar(260)
 declare @filename_reverse nvarchar(260)
 select @filename_reverse=reverse(@filename)
 select @file_path=substring(@filename,1,len(@filename)+1-charindex(’’,@filename_reverse))
 return @file_path
end

GO

/*规复数据库的进程*/
if exists(
 select * from sysobjects
  where name=’pr_restore_db’ and xtype=’p’
          )
begin
 drop proc pr_restore_db
end
go
CREATE  proc pr_restore_db    
@flag varchar(20) out,    /*进程运行的状态符号,是输入参数*/      
@restore_db_name nvarchar(128),  /*要规复的数据名字*/
@filename nvarchar(260)         /*备份文件存放的路径+备份文件名字*/
as
declare @proc_result tinyint  /*返回体系存储进程xp_cmdshell运行功效*/
declare @loop_time smallint  /*轮回次数*/
declare @max_ids smallint    /*@tem表的ids列最大数*/
declare @file_bak_path nvarchar(260)  /*原数据库存放路径*/
declare @flag_file bit   /*文件存放符号*/
declare @master_path nvarchar(260)  /*数据库master文件路径*/
declare @sql nvarchar(4000),@par nvarchar(1000)
declare @sql_sub nvarchar(4000)
declare @sql_cmd nvarchar(100) 
declare @sql_kill nvarchar(100) 
/*
判定参数@filename文件名目正当性,以防备用户输入相同d: 可能 c:a 等犯科文件名
参数@filename内里必需有’’而且不以’’末了
*/
if right(@filename,1)<>’’ and charindex(’’,@filename)<>0
begin 
 select @sql_cmd=’dir ’+@filename
 EXEC @proc_result = master..xp_cmdshell @sql_cmd,no_output
 IF (@proc_result<>0)  /*体系存储进程xp_cmdshell返回代码值:0(乐成)或1(失败)*/
 begin
  select @flag=’not exist’   /*备份文件不存在*/
  return  /*退出进程*/
 end
 /*建设姑且表,生涯由备份集内包括的数据库和日记文件列表构成的功效集*/
 create table #tem(
     LogicalName nvarchar(128), /*文件的逻辑名称*/
     PhysicalName nvarchar(260) , /*文件的物理名称或操纵体系名称*/
     Type char(1),  /*数据文件 (D) 或日记文件 (L)*/
     FileGroupName nvarchar(128), /*包括文件的文件组名称*/
     [Size] numeric(20,0),  /*当前巨细(以字节为单元)*/
     [MaxSize] numeric(20,0)  /*应承的最大巨细(以字节为单元)*/
   )

[1] [2] 下一页  

(编辑:湖南网)

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

    热点阅读