[SQL Server][工具]從資料庫備份檔還原單一資料表(ApexSQL Recover)

資料庫因為胖胖的讓公司測試環境很擠,但想透過上個月月初備份檔(.bak)還原幾個資料表來比較測試結果,測試環境的空間及資源都不足,當初也沒把幾個資料表放在指定檔案群組(File Group),這次不能使用還原檔案群組招式。

來筆記付費的Third party工具,透過ApexSQL Recover工具,不需要還原整個資料庫就能還原單一資料表

測試機的SQL版本是SQL Server 2017 

建立環境

建立資料庫,內含迪士尼公主與漫威超級英雄資料表,資料表各有8筆資料

CREATE DATABASE RestoreSingleTableDb 
use RestoreSingleTableDb

DROP TABLE IF EXISTS DisneyPricess
CREATE TABLE DisneyPricess( 
    ID INT  identity, NAME VARCHAR(20) 
    ) 
  
DROP TABLE IF EXISTS MarvellHeroes
CREATE TABLE MarvellHeroes( 
    ID INT  identity, NAME VARCHAR(20) 
    ) 

INSERT INTO DisneyPricess 
VALUES('Snow White'),('Cinderella'),('Aurora'),('Ariel'),('Belle'),('Jasmine'),('Pocahontas'),('Rapunzel')

INSERT INTO MarvellHeroes 
VALUES('Captain America'),('Iron Man'),('The Hulk'),('Spider-Man'),('Mister Fantastic'),('Hawkeye'),('Wolverine'),('Thor')

SELECT * FROM DisneyPricess
SELECT * FROM MarvellHeroes

 

8個迪士尼公主  x 8個漫威超級英雄

備份資料庫

BACKUP DATABASE [RestoreSingleTableDb] 
TO  DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL14.SQL2017\MSSQL\Backup\RestoreSingleTableDb.bak' 
WITH NOFORMAT, NOINIT,  NAME = N'RestoreSingleTableDb-完整 資料庫 備份', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO

 


從.bak還原單一資料表

假設迪士尼公主資料表太大,我們只想還原漫威超級英雄資料表到測試環境來。

1.打開apexSQL

2.選擇備份資料檔(.bak),也可以依需要附加差異備份或LOG備份檔案

3.選擇要還原的資料表

4.選擇還原的目的地: 可以選擇產生指令碼或選擇目的地資料庫伺服器。

這邊我們新開一個資料庫ApexSQLRecover_1911184990,確認好選項後按下一步。

選擇產出資料表結構及資料

ok,執行完成了! 工具告訴我們處理了8筆

按右鍵,重新整理管理工具的物件總管

果然多了一個ApexSQLRecover_1911184990資料庫,而且只內含一個資料表MarvellHeroes

驗證看看

use [ApexSQLRecover_1911184990]
select * from [dbo].[MarvellHeroes]

 

如果是試用版,每10筆只會幫我們產生1筆。

只剩1個漫威超級英雄來到人間了~~

如果是完整版,就會全部出現

單買一套$1999美金,含稅$2,099美金。

 


參考

ApexSQL Recover Powerful SQL Server data recovery

ApexSQL Prices