Sql-Server

SQL 數據庫測試:如何擷取我的數據庫狀態以進行回滾

  • June 18, 2010

我的開發環境中有一個 SQL 伺服器(MS SQL 2005)。我有一套用於連接數據庫並執行一些操作的.net 程式碼的單元測試。如果被測程式碼正常工作,那麼數據庫應該處於與測試之前相同(或相似)的狀態。

但是,我希望能夠將數據庫回滾到測試執行之前的狀態。這樣做的一種方法是以程式方式使用事務來回滾每個測試操作,但這很難程式,而且很麻煩;它很容易導致測試程式碼中的錯誤。

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

什麼是保存我的一個數據庫及其表的快照的好方法,以便我可以輕鬆地將數據庫恢復到測試前的狀態?

為什麼不使用 Transact-SQL 備份和恢復常式?

在此處此處查看MSDN 上的文件。

如果您有 sql server 2008,那麼您可以拍攝快照,執行所有測試,然後使用以下命令將數據庫恢復到快照點:

RESTORE DATABASE <database_name> FROM DATABASE_SNAPSHOT

引用自:https://serverfault.com/questions/151887