Skip to content

Commit c13a5e2

Browse files
Merge pull request #659 from gflpcantor31/issue_658
Refine ANSI Settings Check Logic to Align with Modern Best Practices (Fixes #658)
2 parents 861bf90 + 2ebd834 commit c13a5e2

1 file changed

Lines changed: 19 additions & 18 deletions

File tree

sp_PerfCheck/sp_PerfCheck.sql

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4334,32 +4334,33 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
43344334
check_id = 7005,
43354335
priority = 50, /* Medium priority */
43364336
category = N'Database Configuration',
4337-
finding = N'Non-Standard ANSI Settings',
4337+
finding = N'ANSI Settings Require Review',
43384338
database_name = d.name,
43394339
details =
4340-
N'Database has non-standard ANSI settings: ' +
4341-
CASE WHEN d.is_ansi_null_default_on = 1 THEN N'ANSI_NULL_DEFAULT ON, ' ELSE N'' END +
4342-
CASE WHEN d.is_ansi_nulls_on = 1 THEN N'ANSI_NULLS ON, ' ELSE N'' END +
4343-
CASE WHEN d.is_ansi_padding_on = 1 THEN N'ANSI_PADDING ON, ' ELSE N'' END +
4344-
CASE WHEN d.is_ansi_warnings_on = 1 THEN N'ANSI_WARNINGS ON, ' ELSE N'' END +
4345-
CASE WHEN d.is_arithabort_on = 1 THEN N'ARITHABORT ON, ' ELSE N'' END +
4346-
CASE WHEN d.is_concat_null_yields_null_on = 1 THEN N'CONCAT_NULL_YIELDS_NULL ON, ' ELSE N'' END +
4347-
CASE WHEN d.is_numeric_roundabort_on = 1 THEN N'NUMERIC_ROUNDABORT ON, ' ELSE N'' END +
4348-
CASE WHEN d.is_quoted_identifier_on = 1 THEN N'QUOTED_IDENTIFIER ON, ' ELSE N'' END +
4349-
N'which can cause unexpected application behavior and compatibility issues.',
4340+
N'One or more ANSI settings differ from recommended best practices: ' +
4341+
CASE WHEN d.is_ansi_null_default_on = 0 THEN N'ANSI_NULL_DEFAULT OFF (recommended ON), ' ELSE N'' END +
4342+
CASE WHEN d.is_ansi_nulls_on = 0 THEN N'ANSI_NULLS OFF (recommended ON), ' ELSE N'' END +
4343+
CASE WHEN d.is_ansi_padding_on = 0 THEN N'ANSI_PADDING OFF (recommended ON), ' ELSE N'' END +
4344+
CASE WHEN d.is_ansi_warnings_on = 0 THEN N'ANSI_WARNINGS OFF (recommended ON), ' ELSE N'' END +
4345+
CASE WHEN d.is_arithabort_on = 0 THEN N'ARITHABORT OFF (recommended ON in many contexts), ' ELSE N'' END +
4346+
CASE WHEN d.is_concat_null_yields_null_on = 0 THEN N'CONCAT_NULL_YIELDS_NULL OFF (recommended ON), ' ELSE N'' END +
4347+
CASE WHEN d.is_numeric_roundabort_on = 1 THEN N'NUMERIC_ROUNDABORT ON (recommended OFF), ' ELSE N'' END +
4348+
CASE WHEN d.is_quoted_identifier_on = 0 THEN N'QUOTED_IDENTIFIER OFF (recommended ON), ' ELSE N'' END +
4349+
N'These settings may lead to inconsistent behavior, reduced feature compatibility, or unexpected query results ' +
4350+
N'if they do not align with recommended best practices.',
43504351
url = N'https://erikdarling.com/sp_PerfCheck#ANSISettings'
43514352
FROM #databases AS d
43524353
WHERE d.database_id = @current_database_id
43534354
AND
43544355
(
4355-
d.is_ansi_null_default_on = 1
4356-
OR d.is_ansi_nulls_on = 1
4357-
OR d.is_ansi_padding_on = 1
4358-
OR d.is_ansi_warnings_on = 1
4359-
OR d.is_arithabort_on = 1
4360-
OR d.is_concat_null_yields_null_on = 1
4356+
d.is_ansi_null_default_on = 0
4357+
OR d.is_ansi_nulls_on = 0
4358+
OR d.is_ansi_padding_on = 0
4359+
OR d.is_ansi_warnings_on = 0
4360+
OR d.is_arithabort_on = 0
4361+
OR d.is_concat_null_yields_null_on = 0
43614362
OR d.is_numeric_roundabort_on = 1
4362-
OR d.is_quoted_identifier_on = 1
4363+
OR d.is_quoted_identifier_on = 0
43634364
);
43644365

43654366
/* Check Query Store Status */

0 commit comments

Comments
 (0)