中国站长下载-为中国站长提供最好最全的建站资源! 首 页发布资源有事留言繁體中文
设为首页
加入收藏
联系我们
 
您当前的位置:中国站长下载 -> 文章中心 -> 数据库区 -> MSSQL -> 文章内容  虚拟主机 域名注册 退出登录 用户管理
栏目导航
· ACCESS · MSSQL
· Mysql · DB2
· ORACLE · SYBASE
· 其他相关
热门文章
· sndvol32 - sndvol3...
· [组图] FLASH:《大话李白》...
· 个人网站到底能赚多...
· [图文] Rundll.exe是病毒吗...
· [组图] Flash:制作MV
· 价值12万元的网站SE...
· 网站创业者,你需要...
· 一个成功的网站设计...
· [图文] FLASH:韩国导航条解...
· 中国网站的赚钱模式...
相关文章
· SQL Server 安全系统...
· PHP3 入门教程(极短...
· PHP/MySQL 购物车
· [图文] ASP.NET2.0+SQL Ser...
· ASP.NET2.0+SQL Ser...
· [图文] ASP.NET2.0+SQL Ser...
· [图文] ASP.NET2.0+SQL Ser...
· ASP.NET2.0+SQL Ser...
· ado.net获取存储过程...
· Asp.net如何连接SQL...
SQL SERVER2000备份和恢复存储过程
作者:无从考证  来源:不详  发布时间:2005-9-26 10:51:01  发布人:chinazhan

 减小字体 增大字体

/*备份数据库的过程*/
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]  下一页

 
[] [返回上一页] [打 印] [收 藏]
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
中国站长下载
中国站长下载

本页只接受PR>=4 IT类站点连接,申请连接,谢谢您们的支持!希望我们的下载站能够真正帮到中国的站长们!
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图
Copyright © 2005-2006 ChinaZhan.Net. All Rights Reserved .