业务问题:我们希望以已知状态开始对数据库运行一系列自动化测试。
现在,我知道保证测试开始时数据库处于原始状态的最佳方法是在每次测试之前从.bak
备份文件恢复数据库,但这很慢
有更快的方法吗?
我们正在使用SQL Server 2016,主要是.NET技术。
(注意:我知道还有更多以数据库为中心的论坛,但是由于我是从开发人员的角度出发,所以从这里开始似乎是合理的。)
答案 0 :(得分:1)
Database snapshotting似乎可以以最小的开销完全满足我的要求。
创建快照:
CREATE DATABASE t19314_ss ON
( NAME = TimeStar,
FILENAME = 'C:\temp\snappy.ss' ) AS SNAPSHOT OF t19314
还原到快照:
RESTORE DATABASE t19314 from DATABASE_SNAPSHOT = 't19314_ss';