Voglio essere in grado di eseguire una query per ottenere le informazioni cruciali sullo stato di un database. Vale a dire, voglio che la query sia in grado di dire se il database è in buono stato.
Questa è la query che ho ereditato per questo controllo:
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)
Se la query restituisce risultati, si presuppone che il database si trovi in uno stato sospetto o potenzialmente non valido.
C'è un modo migliore per farlo?