Ich versuche, eine T-SQL-Abfrage zu erstellen, mit der ermittelt werden kann, ob für eine bestimmte Datenbank Datenbank-Snapshots erstellt wurden oder nicht.
Wenn ich zum Beispiel einen Schnappschuss wie diesen erstellen würde:
CREATE DATABASE [DatabaseA_Snapshot] ON
(NAME=DatabaseA, FileName='<whatever>')
AS SNAPSHOT OF [DatabaseA]
Gibt es eine Möglichkeit, die Existenz dieses Schnappschusses später erneut abzufragen? Ich kann sehen, dass es in sys.databases angezeigt wird, aber ich konnte keine Informationen finden, mit denen ich feststellen kann, dass es sich um einen Datenbank-Snapshot handelt, der aus DatabaseA erstellt wurde.
Der Objekt-Explorer von SQL Server Management Studio legt es im Ordner "Datenbank-Snapshots" ab, sodass es offensichtlich eine Möglichkeit gibt, diese von regulären Datenbanken zu unterscheiden.
sql-server
snapshot
Jesse Taber
quelle
quelle
sys.databases
anstelle von,sys.sysdatabases
da letztere veraltet ist .Antworten:
Eine Snapshot-Datenbank enthält einen Eintrag in
sys.databases.source_database_id
, sodass Sie mithilfe der folgenden Informationen nach einem aktuellen Snapshot suchen können. Ebenso können Sie dieselbe Prüfung fürDROP
einen vorhandenen Snapshot verwenden, bevor Sie einen neuen erstellen.quelle