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] 下一页 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐
热点阅读