在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當前位置:雨林木風下載站 > 應用軟件教程 > 詳細頁面

SQL SERVER2000備份與恢復存儲過程

SQL SERVER2000備份與恢復存儲過程

更新時間:2025-10-17 文章作者:未知 信息來源:網絡 閱讀次數:

數據庫,簡而言之可視為電子化的文件柜——存儲電子文件的處所,用戶可以對文件中的數據進行新增、截取、更新、刪除等操作。所謂“數據庫”是以一定方式儲存在一起、能與多個用戶共享、具有盡可能小的冗余度、與應...
數據庫,簡而言之可視為電子化的文件柜——存儲電子文件的處所,用戶可以對文件中的數據進行新增、截取、更新、刪除等操作。所謂“數據庫”是以一定方式儲存在一起、能與多個用戶共享、具有盡可能小的冗余度、與應用程序彼此獨立的數據集合。
/*備份數據庫的過程*/
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)  /*允許的最大大小(以字節為單位)*/
   )
[page_break]/*
 創建表變量,表結構與臨時表基本一樣
 就是多了兩列,
 列ids(自增編號列),
 列file_path,存放文件的路徑
 */
 declare @tem table(       
     ids smallint identity,  /*自增編號列*/
     LogicalName nvarchar(128), 
     PhysicalName nvarchar(260), 
     File_path nvarchar(260), 
     Type char(1),  
     FileGroupName nvarchar(128)
   )
 insert into #tem 
  execute(’restore filelistonly from disk=’’’+@filename+’’’’)
 /*將臨時表導入表變量中,并且計算出相應得路徑*/
 insert into @tem(LogicalName,PhysicalName,File_path,Type,FileGroupName)  
  select LogicalName,PhysicalName,dbo.fn_GetFilePath(PhysicalName),Type,FileGroupName 
   from #tem
 if @@rowcount>0 
 begin
  drop table #tem
 end
 select @loop_time=1
 select @max_ids=max(ids)  /*@tem表的ids列最大數*/
  from @tem
 while @loop_time<=@max_ids
 begin
  select @file_bak_path=file_path 
   from @tem where ids=@loop_time
  select @sql_cmd=’dir ’+@file_bak_path
  EXEC @proc_result = master..xp_cmdshell @sql_cmd,no_output
  /*系統存儲過程xp_cmdshell返回代碼值:0(成功)或1(失敗)*/
  IF (@proc_result<>0) 
   select @loop_time=@loop_time+1  
  else
   BREAK /*沒有找到備份前數據文件原有存放路徑,退出循環*/
 end
 select @master_path=’’
 if @loop_time>@max_ids 
  select @flag_file=1   /*備份前數據文件原有存放路徑存在*/
 else
 begin
  select @flag_file=0  /*備份前數據文件原有存放路徑不存在*/
  select @master_path=dbo.fn_GetFilePath(filename)
   from master..sysdatabases 
   where name=’master’
 end
 select @sql_sub=’’
 /*type=’d’是數據文件,type=’l’是日志文件 */
 /*@flag_file=1時新的數據庫文件還是存放在原來路徑,否則存放路徑和master數據庫路徑一樣*/
 select @sql_sub=@sql_sub+’move ’’’+LogicalName+’’’ to ’’’
   +case type 
         when ’d’ then case @flag_file 
             when 1 then  File_path 
      else @master_path 
          end    
         when ’l’ then case  @flag_file
      when 1 then  File_path 
      else @master_path 
          end    
   end
   +case type
    when ’d’ then @restore_db_name
           +’_DATA’
           +convert(sysname,ids)  /*給文件編號*/
           +’.’
           +right(PhysicalName,3)  /*給文件加入后綴名,mdf or ndf*/
           +’’’,’  
    when ’l’ then @restore_db_name
           +’_LOG’
           +convert(sysname,ids)   /*給文件編號*/
           +’.’
           +right(PhysicalName,3)  /*給文件加入后綴名,mdf or ndf*/
           +’’’,’  
    end
   from @tem
 select @sql=’RESTORE DATABASE @db_name FROM DISK=@filename with ’
 select @sql=@sql+@sql_sub+’replace’
 select @par=’@db_name nvarchar(128),@filename nvarchar(260)’
 /*關閉相關進程,把相應進程狀況導入臨時表中*/
 select identity(int,1,1) ids, spid 
  into #temp
  from master..sysprocesses
  where dbid=db_id(@restore_db_name)
 if @@rowcount>0 --找到相應進程
 begin   
  select @max_ids=max(ids) 
   from #temp
  select @loop_time=1
  while @loop_time<=@max_ids
  begin
   select @sql_kill=’kill ’+convert(nvarchar(20),spid) 
    from #temp
    where ids=@loop_time
   execute sp_executesql @sql_kill
   select @loop_time=@loop_time+1 
  end
 end 
 drop table #temp
 execute sp_executesql @sql,@par,@db_name=@restore_db_name,@filename=@filename
 select @flag=’ok’   /*操作成功*/
end
else
begin
 SELECT @flag=’file type error’  /*參數@filename輸入格式錯誤*/
end

GO

--run
--備份數據庫test_database
declare @fl varchar(10)
execute pr_backup_db @fl out,’test_database’,’c:\test_database.bak’
select @fl
--恢復數據庫,輸入的參數錯誤
declare @fl varchar(20)
exec pr_restore_db @fl out,’sa’,’c:\’
select @fl

--恢復數據庫,即創建數據庫test_database的復本test_db
declare @fl varchar(20)
exec pr_restore_db @fl out,’test_db’,’c:\test_database.bak’
select @fl

全新的路由器不僅讓你更穩定快速地連接無線網絡,更可以讓家中的智能設備連接在一起。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 成人午夜精品久久久久久久蜜臀| 吴梦梦av在线| www,av在线| 国产精品自在自线| 8x8x成人免费视频| 亚洲午夜激情影院| ijzzijzzij亚洲大全| 成人午夜视频免费观看| 久久亚洲中文字幕无码| 无码精品a∨在线观看中文| 久久精品.com| www.桃色.com| 国产成人无码精品久久久性色| 国产视频九色蝌蚪| 手机在线成人免费视频| 免费看啪啪网站| 日日摸日日碰夜夜爽无码| 成人在线观看黄| 成人区一区二区| 亚洲 激情 在线| 99精品人妻少妇一区二区| 免费看黄色a级片| 91丝袜超薄交口足| 污污网站免费观看| heyzo亚洲| 久草热视频在线观看| 超碰免费在线公开| 亚洲三级在线观看视频| av天堂永久资源网| www.xxx麻豆| 奇米精品一区二区三区| 999一区二区三区| 分分操这里只有精品| 99在线免费视频观看| 国产二区视频在线播放| 成人在线免费观看av| 无码人妻丰满熟妇区96| 国产精品宾馆在线精品酒店| 人妻互换免费中文字幕| 欧美日韩一道本| 91色国产在线| a级黄色片网站| 中文字幕视频三区| 亚洲18在线看污www麻豆| 污污的视频免费观看| av免费观看大全| 午夜啪啪小视频| 狠狠干视频网站| www黄色av| 天天爽天天爽夜夜爽| 欧美伦理片在线观看| 欧美一级小视频| 8x8x华人在线| 一二三级黄色片| www.av中文字幕| 国产一区一区三区| 欧美日韩午夜爽爽| 欧洲精品在线播放| 午夜av中文字幕| 国产wwwxx| 九九热精品国产| 日本不卡一区二区在线观看| 99热在线这里只有精品| 9色porny| 国产淫片免费看| 黄页网站大全在线观看| 欧美 日韩 国产一区| 欧美国产日韩在线播放| 九色91popny| 浴室偷拍美女洗澡456在线| 一本—道久久a久久精品蜜桃| 黄色永久免费网站| 亚洲三级在线观看视频| 白白操在线视频| 亚洲熟女乱色一区二区三区| 久久久精品在线视频| 日韩大片一区二区| 日韩中文字幕亚洲精品欧美| 青草视频在线观看视频| 婷婷免费在线观看| 国产在线视频综合| 日韩精品视频一二三| 黄色片免费在线观看视频| 亚洲中文字幕无码不卡电影| 天堂av在线8| 白嫩少妇丰满一区二区| 97久久国产亚洲精品超碰热| 国产裸体舞一区二区三区| 婷婷视频在线播放| www.超碰97.com| 熟女少妇在线视频播放| 亚洲美女爱爱视频| 国产精品视频分类| 国产又大又黄又粗的视频| 男女激情无遮挡| 欧美亚洲日本一区二区三区| 欧洲精品视频在线| 国产经典久久久| 久久久久久久久影视| 精品视频在线观看一区二区| 黄色aaaaaa| 国产黄色激情视频| 宅男噜噜噜66国产免费观看| 青青青青草视频| 亚洲午夜无码av毛片久久| www.亚洲视频.com| 亚洲三级在线观看视频| 亚洲一区精品视频在线观看| 天天操天天爽天天射| 草草视频在线免费观看| 激情黄色小视频| 一区二区xxx| 中文字幕在线导航| 91香蕉视频免费看| 成人免费在线视频播放| 黄色动漫在线免费看| 成年人在线看片| 高清无码一区二区在线观看吞精| 路边理发店露脸熟妇泻火| a在线视频观看| 国产无色aaa| 久久人妻精品白浆国产| 999在线观看视频| 午夜av中文字幕| 天天干在线影院| 免费在线观看日韩视频| 精品日韩在线播放| 午夜视频在线瓜伦| 麻豆av免费在线| av7777777| 日本男人操女人| 一区二区三区国产免费| 爱情岛论坛成人| 999精品视频在线| www亚洲成人| 午夜免费福利网站| 欧美激情亚洲天堂| 青青青青草视频| 欧美激情国产精品日韩| 红桃av在线播放| 一个色综合久久| 国产一区二区三区播放| 国产精彩视频一区二区| 国产成人亚洲精品无码h在线| 日韩av高清在线看片| 欧美女人性生活视频| 911av视频| 蜜臀av色欲a片无码精品一区| 黄色一级在线视频| 青青草原播放器| 黄色免费视频大全| 污视频在线观看免费网站| 欧美性大战久久久久xxx| 亚洲欧美日韩网站| 大香煮伊手机一区| 97免费视频观看| 欧洲精品视频在线| 欧洲美女亚洲激情| 少妇人妻互换不带套| 女人扒开屁股爽桶30分钟| 91丝袜超薄交口足| 精品日韩久久久| 欧美综合在线观看视频| 成人性免费视频| 国产中文字幕乱人伦在线观看| 日韩成人av免费| 裸体裸乳免费看| 中文字幕第22页| 国产农村妇女精品久久| www.av片| 国产精品国三级国产av| 日韩手机在线观看视频| 国产三区在线视频| 黄色片在线免费| 免费观看国产视频在线| 18禁网站免费无遮挡无码中文| 天堂中文视频在线| 天天操精品视频| 欧美a级免费视频| 国产无套粉嫩白浆内谢的出处| 色www免费视频| 18黄暴禁片在线观看| 无码人妻丰满熟妇区毛片18| 一级一片免费播放| 欧美激情国产精品日韩| 国产盗摄视频在线观看| 日韩不卡一二三| 男人的天堂99| 成人在线免费在线观看| 国产成人一区二区三区别| 亚洲第一页在线视频| 日本中文字幕观看| 五月天中文字幕在线| 狠狠精品干练久久久无码中文字幕 | mm131亚洲精品| 婷婷视频在线播放| av在线免费观看国产| 99视频精品免费| 久久综合久久网| 可以在线看黄的网站|