在线看毛片视频-国产免费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>
  • 99999精品视频| 中文字幕欧美人妻精品一区| 免费看a级黄色片| 激情五月婷婷六月| 日韩欧美视频免费在线观看| 麻豆中文字幕在线观看| 中文av一区二区三区| 欧美成人黑人猛交| 国产激情在线观看视频| 久久综合久久色| 五月天亚洲视频| 三级av免费观看| 亚洲第一成肉网| 国产91视频一区| 国产1区2区3区中文字幕| 日本精品福利视频| 国产九九九九九| 国产成人精品视频免费看| 日本三级免费网站| 日韩成人精品视频在线观看| 天天操狠狠操夜夜操| 免费不卡av网站| 亚洲理论电影在线观看| 国产亚洲欧美在线视频| 91极品尤物在线播放国产| 手机精品视频在线| 很污的网站在线观看| 日韩欧美在线播放视频| 在线播放免费视频| 精品国产一区二区三区无码| 国产裸体免费无遮挡| 天天做天天干天天操| 久久久久久人妻一区二区三区| 国产第一页视频| 99亚洲国产精品| 日日摸天天爽天天爽视频| 国产精品99久久久久久大便| 色欲色香天天天综合网www| 国产一级不卡毛片| 91.com在线| 午夜免费看视频| 男人添女荫道口图片| 欧美一级xxxx| 国产日产欧美视频| 水蜜桃在线免费观看| 嫩草影院国产精品| 免费看国产曰批40分钟| 国产永久免费网站| 国产精彩免费视频| 水蜜桃色314在线观看| 亚洲图色中文字幕| 美女一区二区三区视频| 国产高清av在线播放| 9999在线观看| 交换做爰国语对白| 香港日本韩国三级网站| 久久精品99国产| 日本wwww视频| 欧美又粗又长又爽做受| 中文字幕日韩精品无码内射| 中文字幕视频三区| 污色网站在线观看| 精品少妇无遮挡毛片| 国产裸体舞一区二区三区| 91黄色在线看| 日韩国产一级片| 亚洲熟妇无码一区二区三区| 国产中文字幕乱人伦在线观看| 国产精品探花在线播放| 做爰高潮hd色即是空| 91制片厂免费观看| 玖玖精品在线视频| 久久久久亚洲av无码专区喷水| 国内av免费观看| 日本丰满大乳奶| 男人天堂新网址| 日本a视频在线观看| 欧美不卡在线播放| 国产成人久久婷婷精品流白浆| 日本在线观看a| 亚洲国产日韩欧美在线观看| 三级一区二区三区| 中文字幕乱码免费| 免费成人午夜视频| 日本美女高潮视频| 中文字幕12页| 国产手机免费视频| 麻豆av免费在线| 9999在线观看| 国产69精品久久久久999小说| 欧美污视频网站| 亚洲成人福利在线| 欧美黑人在线观看| 久久久999视频| 亚洲在线观看网站| 欧美亚洲日本一区二区三区 | 91av俱乐部| 国产精品12p| www.四虎成人| 黄网站色视频免费观看| 精品久久久久久中文字幕2017| 亚洲老女人av| 日韩小视频网站| 精品国产鲁一鲁一区二区三区| www.av片| www.69av| 91pony九色| 蜜臀av午夜一区二区三区| 日韩欧美中文在线视频| 美女福利视频在线| 四虎4hu永久免费入口| 丁香婷婷激情网| 日本免费不卡一区二区| 肉大捧一出免费观看网站在线播放| 四虎永久在线精品无码视频| 今天免费高清在线观看国语| 自拍偷拍21p| av免费网站观看| 女人喷潮完整视频| 欧美中日韩在线| 日本xxx免费| 不用播放器的免费av| 粗暴91大变态调教| 男人添女人下面高潮视频| 超碰在线免费观看97| 最新免费av网址| 三级一区二区三区| 丁香婷婷激情网| 免费看国产黄色片| 丁香婷婷激情网| 不卡av免费在线| 噼里啪啦国语在线观看免费版高清版| 人妻无码久久一区二区三区免费| 国产欧美综合一区| 熟妇熟女乱妇乱女网站| 亚洲一区二区中文字幕在线观看| 一区二区三区视频网| 黄大色黄女片18第一次| 欧美美女性视频| 91网址在线观看精品| 国产又爽又黄ai换脸| 免费观看中文字幕| 免费视频爱爱太爽了| 日本少妇高潮喷水视频| 国产精品免费观看久久| 国产97色在线 | 日韩| 2025韩国理伦片在线观看| 国内自拍第二页| 国产成人亚洲综合无码| 波多野结衣家庭教师在线播放| 免费av观看网址| 国产又粗又长又大的视频| 中文字幕丰满乱码| 2022中文字幕| 黄色动漫在线免费看| 五月花丁香婷婷| 800av在线免费观看| 黄色一级视频片| 色噜噜狠狠永久免费| 日本福利视频在线观看| 欧在线一二三四区| 超碰成人在线免费观看| 熟女少妇在线视频播放| 最新国产黄色网址| 国产乱淫av片杨贵妃| www.com操| 成人黄色大片网站| 亚洲天堂国产视频| 亚洲精品蜜桃久久久久久| 91精品无人成人www| 高清无码一区二区在线观看吞精| 黄色影院一级片| 欧美 国产 精品| 奇米影视四色在线| 国产毛片视频网站| 99精品一区二区三区的区别| 18禁男女爽爽爽午夜网站免费| 色婷婷一区二区三区av免费看| 国产免费黄色一级片| 色乱码一区二区三区熟女| 亚洲中文字幕无码中文字| 性鲍视频在线观看| 天美星空大象mv在线观看视频| 被灌满精子的波多野结衣| 国产精品无码乱伦| www.com黄色片| 久久美女福利视频| 国产极品尤物在线| 少妇久久久久久被弄到高潮| 中文字幕第一页在线视频| 99草草国产熟女视频在线| 国产精品一区二区免费在线观看| 手机在线视频你懂的| 国产三级精品三级在线| 亚洲综合色在线观看| 日本va中文字幕| wwwwxxxx日韩| 中文字幕在线导航| 国产成人精品无码播放| 国内外免费激情视频|