Используем снепшоты MS SQL — это удобно

Иногда намного удобнее и быстрее делать моментальные снимки 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

Этот механизм хорошо описан в книге