Sql-Server
SQL 數據庫測試:如何擷取我的數據庫狀態以進行回滾
我的開發環境中有一個 SQL 伺服器(MS SQL 2005)。我有一套用於連接數據庫並執行一些操作的.net 程式碼的單元測試。如果被測程式碼正常工作,那麼數據庫應該處於與測試之前相同(或相似)的狀態。
但是,我希望能夠將數據庫回滾到測試執行之前的狀態。這樣做的一種方法是以程式方式使用事務來回滾每個測試操作,但這很難程式,而且很麻煩;它很容易導致測試程式碼中的錯誤。
我希望能夠自信地執行我的測試,知道如果它們破壞了我的表,我可以快速恢復它們?
什麼是保存我的一個數據庫及其表的快照的好方法,以便我可以輕鬆地將數據庫恢復到測試前的狀態?
為什麼不使用 Transact-SQL 備份和恢復常式?
如果您有 sql server 2008,那麼您可以拍攝快照,執行所有測試,然後使用以下命令將數據庫恢復到快照點:
RESTORE DATABASE <database_name> FROM DATABASE_SNAPSHOT