原理跟執行SQL語句一樣,只是語句和權限有所不同。
備份語句:
backup database @dbName to disk = @bakName
@dbName為要備份的數據庫名,@bakName為要備份到的路徑
權限要求:對備份數據庫的DB Owner,對備份數據庫進行操作
還原語句:
Alter Database {0} Set Offline with Rollback immediate; //離線數據庫
restore database @dbName from disk =@bakName; //還原數據庫
Alter Database {0} Set Online with Rollback immediate; //上線數據庫
{0}為進行還原的數據庫名稱,很奇怪不能用參數進行傳遞,所以只好用:string.Format(SQL_RESTORE_DATABASE, dbInfo.DbName)這樣來付值(SQL_RESTORE_DATABASE為上面的SQL語句)。
@dbName為要備份的數據庫名,@bakName為要備份到的路徑
權限要求:對還原的數據庫用DB Owner權限,另外還要有System Administrators和Database Creator的權限,而且操作時應對Master庫。