Ich möchte in der Lage sein, eine Abfrage auszuführen, um die entscheidenden Informationen zum Status einer Datenbank abzurufen. Das heißt, ich möchte, dass die Abfrage erkennen kann, ob sich die Datenbank in einem guten Zustand befindet oder nicht.
Dies ist die Abfrage, die ich für diese Prüfung geerbt habe:
SELECT name AS [SuspectDB],
DATABASEPROPERTY(name, N'IsSuspect') AS [Suspect],
DATABASEPROPERTY(name, N'IsOffline') AS [Offline],
DATABASEPROPERTY(name, N'IsEmergencyMode') AS [Emergency],
has_dbaccess(name) AS [HasDBAccess]
FROM sysdatabases
WHERE (DATABASEPROPERTY(name, N'IsSuspect') = 1)
OR (DATABASEPROPERTY(name, N'IsOffline') = 1)
OR (DATABASEPROPERTY(name, N'IsEmergencyMode') = 1)
OR (has_dbaccess(name) = 0)
Wenn diese Abfrage Ergebnisse liefert, wird davon ausgegangen, dass sich die Datenbank in einem verdächtigen oder möglicherweise schlechten Zustand befindet.
Gibt es einen besseren Weg, dies zu tun?