Иногда намного удобнее и быстрее делать моментальные снимки Snapshot MS SQL для отката изменений, чем использовать схему через бэкапы. Посмотрим как это делать.
Смотрим имена снепшотов
SELECT name, database_id, source_database_id, create_date
FROM sys.databases
where source_database_id is not null
Делаем снепшот
CREATE DATABASE SNAP_CRM
ON
( NAME = crm, FILENAME= ‘B:\SNAP\SalesDev_MSCRM.snap’),
( NAME = ftrow_ftcat_documentindex, FILENAME=’B:\SNAP\ftrow_ftcat_documentindex.snap’)
AS SNAPSHOT OF SalesDev_MSCRM
go
Чтобы узнать имя NAME = crm
EXEC SP_HELPDB SalesDev_MSCRM
Удаляем снепшот
Use [master]
go
DROP DATABASE SNAP_CRM
go
Восстанавливаем снепшот (перед рестором должен быть только один снепшот и у базы недолжно быть подключений )
USE [master] go
RESTORE DATABASE SalesDev_MSCRM
FROM DATABASE_SNAPSHOT = ‘SNAP_CRM’
go
Есть особенность
откатить мы можем только один снепшот, так что перед откатом нужно удалить все другие снепшоты Ms SQL
Этот механизм хорошо описан в книге