SQL 資料庫測試:如何擷取資料庫狀態以進行回滾

SQL 資料庫測試:如何擷取資料庫狀態以進行回滾

我的開發環境中有一個 SQL Server (MS SQL 2005)。我有一套針對一些 .net 程式碼的單元測試,這些程式碼將連接到資料庫並執行一些操作。如果被測試的程式碼運作正常,那麼資料庫應該處於與測試之前相同(或相似)的狀態。

但是,我希望能夠將資料庫回滾到測試運行之前的狀態。實現此目的的一種方法是以程式設計方式使用交易來回滾每個測試操作,但這編程起來很困難且麻煩;它很容易導致測試程式碼出現錯誤。

我希望能夠自信地運行我的測試,知道如果它們破壞了我的表,我可以快速恢復它們嗎?

有什麼好方法可以保存一個資料庫及其表的快照,以便我可以輕鬆地將資料庫還原到測試之前的狀態?

答案1

為什麼不使用 Transact-SQL 備份和還原例程?

看看MSDN上的文檔這裡這裡

答案2

如果你有 sql server 2008 那麼你可以採取快照,執行所有測試,然後使用以下命令將資料庫還原到快照點:

 RESTORE DATABASE <database_name> FROM DATABASE_SNAPSHOT

相關內容