Chcę mieć możliwość uruchomienia zapytania, aby uzyskać kluczowe informacje o stanie bazy danych. Tzn. Chcę, aby zapytanie mogło stwierdzić, czy baza danych jest w dobrym stanie, czy nie.
Oto zapytanie, które odziedziczyłem dla tej kontroli:
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)
Jeśli to zapytanie zwraca jakiekolwiek wyniki, przyjmuje się, że baza danych jest w stanie podejrzanym lub potencjalnie złym.
Czy jest na to lepszy sposób?