old-vintage-polaroid-camera-with-photos-and-a-bag

Get All Database Snapshots and Their Parent Databases On A SQL Server

,

Image result for camera

This is going to be a quick post but this morning I was asked the question, ‘how can I get the name of all the database snapshots on a SQL Server?’. It was an interesting question so I thought I’d share a quick script to do just that.

We’re going to need to tap into sys.databases to grab this information, sys.databases holds a row for not only every database on our server but also all the snapshots.

The key to this is the source_database_id column, this contains the database ID of a snapshot’s parent (or source) database. The majority of the time, this column will be NULL, indicating that this is actually a database but any time we see a value in the column, we know it’s going to be a snapshot.

Knowing that, knocking together a script to return all database snapshots and their parent databases is pretty simple.

SELECT snapshots.name AS SnapshotName, databases.name AS ParentDatabase
FROM sys.databases snapshots
JOIN sys.databases databases ON snapshots.source_database_id = databases.database_id
WHERE snapshots.source_database_id IS NOT NULL

Thanks for reading ??

Original post (opens in new tab)
View comments in original post (opens in new tab)

Rate

You rated this post out of 5. Change rating

Share

Share

Rate

You rated this post out of 5. Change rating