Asp.Net 備份和恢複SQL SERVER 資料庫

來源:互聯網
上載者:User

 

 1我們通常備份資料庫時,需要登入資料庫伺服器去備份和恢複,這樣很不方便,其實SQL SERVER內建的命令可能讓我們很簡單地實現遠程通過Asp.Net備份和恢複資料庫。 
 2BACKUP DATABASE '被備份的資料庫名' TO DISK = '備份檔案路徑';
 3ALTER DATABASE '被恢複的資料庫名' SET OFFLINE WITH ROOLBACK IMMEDIATE;
 4RESTORE DATABASE '被恢複的資料庫名' FROM DISK = '備份檔案路徑';
 5ALTER DATABASE '被恢複的資料庫名' SET ONLINE WITH ROOLBACK IMMEDIATE;
 6
 7   簡單幾條命令就可以完成資料庫的備份和恢複,在Asp.Net中,可以像調用Sql語句一樣調用這四條語句,輕輕鬆鬆實現SQL SERVER資料庫的備份和恢複。
 8
 9   例子(以Northwind為例):
10   1、備份Northwind資料庫到C盤根目錄下,以'Northwind.bak'為名:
11        BACKUP DATABASE 'Northwind' TO DISK = 'C:\Northwind.bak';
12
13   2、恢複Northwind資料庫,C盤根目錄下的'Northwind.bak'備份檔案:
14       a、將資料庫置於離線狀態
15           ALTER DATABASE 'Northwind' SET OFFLINE WITH ROOLBACK IMMEDIATE;
16       b、恢複Northwind資料庫
17           RESTORE DATABASE 'Northwind' FROM DISK = 'C:\Northwind.bak';
18       c、將資料庫置於線上狀態
19           ALTER DATABASE 'Northwind' SET ONLINE WITH ROOLBACK IMMEDIATE;
20
21使用預存程序:
22create proc BackupDB
23@dbname sysname='',  --要備份的資料庫名稱,不指定則備份當前資料庫
24@bkpath nvarchar(260)='', --備份檔案的存放目錄,不指定則使用SQL預設的備份目錄
25@bkfname nvarchar(260)='', --備份檔案名,檔案名稱中可以用\DBNAME\代表資料庫名,\DATE\代表日期,\TIME\代表時間
26@bktype nvarchar(10)='DB', --備份類型:'DB'備份資料庫,'DF' 差異備份,'LOG' 記錄備份
27@appendfile bit=1  --追加/覆蓋備份檔案
28as
29 declare @sql varchar(8000)
30 if isnull(@dbname,'')='' set @dbname=db_name()
31 if isnull(@bkpath,'')='' set @bkpath=dbo.f_getdbpath(null)
32 if isnull(@bkfname,'')='' set @bkfname='\DBNAME\_\DATE\_\TIME\.BAK'
33 set @bkfname=replace(replace(replace(@bkfname,'\DBNAME\',@dbname)
34  ,'\DATE\',convert(varchar,getdate(),112))
35  ,'\TIME\',replace(convert(varchar,getdate(),108),':',''))
36 set @sql='backup '+case @bktype when 'LOG' then 'log ' else 'database ' end +@dbname
37  +' to disk='''+@bkpath+@bkfname
38  +''' with '+case @bktype when 'DF' then 'DIFFERENTIAL,' else '' end
39  +case @appendfile when 1 then 'NOINIT' else 'INIT' end
40 print @sql
41 exec(@sql)
42
43
44GO
45
46
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.