It’s time again for our monthly updates of our FREE sp_Check stored procedures, so here are the April updates.
This month we have way more updates than in March, including recommendations from the Issues section of GitHub, so thank you to all who contributed!
We also have been working on the content pages referenced by the URLs in the stored procedures. We’ve been going through them all to make sure the content was more helpful. Lots of the previous content pages have had simple sentences that weren’t very descriptive, so we’ve been filling those out to provide more explanations.
This month the updates are mostly corrections, although there were additional checks added to sp_CheckBackup and sp_CheckTempdb.
We hope these new updates can help you, especially if you’ve never used these stored procedures. Here are the updates for April 2026, with links to the GitHub repositories where you can download the latest versions.
- CORRECT omission of DTC Support check for SQL Server 2016
- CORRECT CPU configuration details (CheckID 113)
- CORRECT IP Address details for case sensitivity (CheckID 119)
- CORRECT check for recent events to account for AlwaysOn_health XE being stopped (CheckID 426)
- CORRECT incorrect logic for determining Seeding Mode
- ADD check for AlwaysOn_health XE being stopped (CheckID 429)
- UPDATE check for Endpoint Owner to use SID in case sa login renamed (CheckID 406)
- UPDATE check for AG Owner to use SID in case sa login renamed (CheckID 407)
- UPDATE check for replica database not joined for clarity (CheckID 413)
- UPDATE check for session timeout to 2 checks – one at default, one below (CheckID 415)
- UPDATE check for offline listener to include IP and state (CheckID 417)
- UPDATE check for replicas not failover ready to include Server Instance (CheckID 421)
- ADD EndpointOwnerSID to Endpoints result set
- ADD AGOwnerSID to Availability Group result set
- CORRECT typos in CheckID 410, 415
- ADD EncryptionType column to @Mode = 2
- ADD CompressedBackupSizeInMB and CompressionPercent column to @Mode = 2
- ADD check for integrity checks (CheckID 503)
- ADD check for backup history not purged (CheckID 216)
- ADD check for high VLFs (> 200) (CheckID 217)
- ADD check for backups to NUL (CheckID 218)
- CORRECTED Check for password protected backups (CheckID 215)
- Corrected typo in CHECKID 211
- CHANGE check for most recent version for SQL Server security updates
- CHANGE Issue, Details, and ActionStep data type in #Results to VARCHAR(MAX)
- CHANGE Failed Login check to suppress error message (CheckID 330)
- CHANGE Number of Error Logs check to suppress error message (CheckID 801)
- CHANGE Hide Instance check to suppress error message (CheckID 348)
- CHANGE Extended Protection check to suppress error message (CheckID 348)
- CHANGE Force Encryption check to suppress error message (CheckID 349)
- CORRECTED logic for creating #InvalidLogins table
- CORRECTED incorrect ActionStep for Contained Databases (CheckID 344)
- CORRECTED typos in ChecIDs 304, 305, 307, 310, 313, 314, 316, 321, 323, 324, 327, 330, 351, 622
- CHANGE CheckID 801 (error log retention is at default) to CheckID 622
- ADD description of @Mode = 99 to @Help
- CORRECT usage of @Size in @Help
- CORRECT checks for Slow reads and Writes (CheckIDs 718 and 719)
- CORRECT redundant check for tempdb file with no growth allowed (CheckID 605)
- CORRECT redundant check for tempdb file with percentage growth (CheckID 711)
- CORRECT redundant check for tempdb file with growth < 64 MB (CheckID 712)
- CORRECT redundant check for tempdb file with high usage (CheckID 714)
- CORRECT logic for finding more than 8 cores (CheckID 707)
- REMOVED redundant code for @UsagePercent
- ADD code to avoid negative values for minimum @AvgReadStallMs and @AvgWriteStallMs
- ADD drop of #TraceFlg before it is created
- ADD check for more than 16 data files (CheckID 730)