Database Snapshots (SQL Server)

The database snapshot feature is made available in all editions starting with SQL Server 2016 SP1.

A database snapshot is a read-only, static view of a SQL Server database (the source database). The database snapshot is transactionally consistent with the source database as of the moment of the snapshot’s creation. A database snapshot always resides on the same server instance as its source database.

CREATE DATABASE <database_snapshot_name>
ON (
NAME =<logical_file_name>, FILENAME ='<os_file_name>'
) [ ,...n ]
AS SNAPSHOT OF <source_database_name>

The .ss extension used in the examples is arbitrary.

CREATE DATABASE AdventureWorks_dbss1800 ON  
( NAME = AdventureWorks, FILENAME =   
'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\AdventureWorks_data_1800.ss' )  
AS SNAPSHOT OF AdventureWorks;  
GO

Revert the entire database using restore operation

RESTORE DATABASE <database_name> 
FROM DATABASE_SNAPSHOT =<database_snapshot_name>

Reference

https://www.sqlshack.com/understanding-database-snapshots-vs-database-backups-in-sql-server/

https://docs.microsoft.com/en-us/sql/relational-databases/databases/create-a-database-snapshot-transact-sql?view=sql-server-ver15

Spread the love