ฉันต้องการที่จะเรียกใช้แบบสอบถามเพื่อรับข้อมูลที่สำคัญเกี่ยวกับสถานะของฐานข้อมูล เช่นฉันต้องการให้แบบสอบถามสามารถบอกได้ว่าฐานข้อมูลอยู่ในสภาพดีหรือไม่
นี่คือแบบสอบถามที่ฉันสืบทอดมาสำหรับการตรวจสอบนี้:
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)
หากเคียวรีนั้นส่งคืนผลลัพธ์ใด ๆ ข้อสันนิษฐานที่กำลังทำอยู่คือฐานข้อมูลอยู่ในสถานะสงสัยหรืออาจไม่ดี
มีวิธีที่ดีกว่าในการทำเช่นนี้?