|
31 | 31 | SET NOCOUNT ON;
|
32 | 32 | SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
|
33 | 33 | DECLARE @Version VARCHAR(30);
|
34 |
| - SET @Version = '5.3'; |
35 |
| - SET @VersionDate = '20170501'; |
| 34 | + SET @Version = '5.4'; |
| 35 | + SET @VersionDate = '20170603'; |
36 | 36 | SET @OutputType = UPPER(@OutputType);
|
37 | 37 |
|
38 | 38 | IF @Help = 1 PRINT '
|
|
626 | 626 | AND d.name NOT IN ( SELECT DISTINCT
|
627 | 627 | DatabaseName
|
628 | 628 | FROM #SkipChecks
|
629 |
| - WHERE CheckID IS NULL ) |
| 629 | + WHERE CheckID IS NULL OR CheckID = 1) |
630 | 630 | /*
|
631 | 631 | The above NOT IN filters out the databases we're not supposed to check.
|
632 | 632 | */
|
|
683 | 683 | AND d.name NOT IN ( SELECT DISTINCT
|
684 | 684 | DatabaseName
|
685 | 685 | FROM #SkipChecks
|
686 |
| - WHERE CheckID IS NULL ) |
| 686 | + WHERE CheckID IS NULL OR CheckID = 2) |
687 | 687 | AND NOT EXISTS ( SELECT *
|
688 | 688 | FROM msdb.dbo.backupset b
|
689 | 689 | WHERE d.name COLLATE SQL_Latin1_General_CP1_CI_AS = b.database_name COLLATE SQL_Latin1_General_CP1_CI_AS
|
|
1091 | 1091 | AND name NOT IN ( SELECT DISTINCT
|
1092 | 1092 | DatabaseName
|
1093 | 1093 | FROM #SkipChecks
|
1094 |
| - WHERE CheckID IS NULL) |
| 1094 | + WHERE CheckID IS NULL OR CheckID = 12) |
1095 | 1095 | END
|
1096 | 1096 |
|
1097 | 1097 |
|
|
1121 | 1121 | AND name NOT IN ( SELECT DISTINCT
|
1122 | 1122 | DatabaseName
|
1123 | 1123 | FROM #SkipChecks
|
1124 |
| - WHERE CheckID IS NULL); |
| 1124 | + WHERE CheckID IS NULL OR CheckID = 13); |
1125 | 1125 | END
|
1126 | 1126 |
|
1127 | 1127 |
|
|
1149 | 1149 | FROM sys.databases
|
1150 | 1150 | WHERE page_verify_option < 2
|
1151 | 1151 | AND name <> ''tempdb''
|
1152 |
| - and name not in (select distinct DatabaseName from #SkipChecks) OPTION (RECOMPILE);' |
| 1152 | + and name not in (select distinct DatabaseName from #SkipChecks WHERE CheckID IS NULL OR CheckID = 14) OPTION (RECOMPILE);' |
1153 | 1153 | EXECUTE(@StringToExecute)
|
1154 | 1154 | END;
|
1155 | 1155 | END
|
|
1181 | 1181 | AND name NOT IN ( SELECT DISTINCT
|
1182 | 1182 | DatabaseName
|
1183 | 1183 | FROM #SkipChecks
|
1184 |
| - WHERE CheckID IS NULL) |
| 1184 | + WHERE CheckID IS NULL OR CheckID = 15) |
1185 | 1185 | END
|
1186 | 1186 |
|
1187 | 1187 | IF NOT EXISTS ( SELECT 1
|
|
1210 | 1210 | AND name NOT IN ( SELECT DISTINCT
|
1211 | 1211 | DatabaseName
|
1212 | 1212 | FROM #SkipChecks
|
1213 |
| - WHERE CheckID IS NULL) |
| 1213 | + WHERE CheckID IS NULL OR CheckID = 16) |
1214 | 1214 | END
|
1215 | 1215 |
|
1216 | 1216 |
|
|
1240 | 1240 | AND name NOT IN ( SELECT DISTINCT
|
1241 | 1241 | DatabaseName
|
1242 | 1242 | FROM #SkipChecks
|
1243 |
| - WHERE CheckID IS NULL) |
| 1243 | + WHERE CheckID IS NULL OR CheckID = 17) |
1244 | 1244 | END
|
1245 | 1245 |
|
1246 | 1246 |
|
|
1269 | 1269 | WHERE is_parameterization_forced = 1
|
1270 | 1270 | AND name NOT IN ( SELECT DatabaseName
|
1271 | 1271 | FROM #SkipChecks
|
1272 |
| - WHERE CheckID IS NULL) |
| 1272 | + WHERE CheckID IS NULL OR CheckID = 18) |
1273 | 1273 | END
|
1274 | 1274 |
|
1275 | 1275 |
|
|
1299 | 1299 | AND name NOT IN ( SELECT DISTINCT
|
1300 | 1300 | DatabaseName
|
1301 | 1301 | FROM #SkipChecks
|
1302 |
| - WHERE CheckID IS NULL) |
| 1302 | + WHERE CheckID IS NULL OR CheckID = 20) |
1303 | 1303 | END
|
1304 | 1304 |
|
1305 | 1305 |
|
|
1328 | 1328 | (''Database ['' + [name] + ''] has Transparent Data Encryption enabled. Make absolutely sure you have backed up the certificate and private key, or else you will not be able to restore this database.'') AS Details
|
1329 | 1329 | FROM sys.databases
|
1330 | 1330 | WHERE is_encrypted = 1
|
1331 |
| - and name not in (select distinct DatabaseName from #SkipChecks) OPTION (RECOMPILE);' |
| 1331 | + and name not in (select distinct DatabaseName from #SkipChecks WHERE CheckID IS NULL OR CheckID = 21) OPTION (RECOMPILE);' |
1332 | 1332 | EXECUTE(@StringToExecute)
|
1333 | 1333 | END;
|
1334 | 1334 | END
|
|
1692 | 1692 | AND DB_NAME(database_id) NOT IN (
|
1693 | 1693 | SELECT DISTINCT
|
1694 | 1694 | DatabaseName
|
1695 |
| - FROM #SkipChecks ) |
| 1695 | + FROM #SkipChecks |
| 1696 | + WHERE CheckID IS NULL OR CheckID = 26 ) |
1696 | 1697 | END
|
1697 | 1698 |
|
1698 | 1699 |
|
|
2334 | 2335 | AND name NOT IN ( SELECT DISTINCT
|
2335 | 2336 | DatabaseName
|
2336 | 2337 | FROM #SkipChecks
|
2337 |
| - WHERE CheckID IS NULL); |
| 2338 | + WHERE CheckID IS NULL OR CheckID = 55); |
2338 | 2339 | END
|
2339 | 2340 |
|
2340 | 2341 | IF NOT EXISTS ( SELECT 1
|
|
2440 | 2441 | WHERE name NOT IN ( SELECT DISTINCT
|
2441 | 2442 | DatabaseName
|
2442 | 2443 | FROM #SkipChecks
|
2443 |
| - WHERE CheckID IS NULL) |
| 2444 | + WHERE CheckID IS NULL OR CheckID = 62) |
2444 | 2445 | AND compatibility_level <= 90
|
2445 | 2446 | END
|
2446 | 2447 |
|
|
3016 | 3017 | AND d.name NOT IN ( SELECT DISTINCT
|
3017 | 3018 | DatabaseName
|
3018 | 3019 | FROM #SkipChecks
|
3019 |
| - WHERE CheckID IS NULL) |
| 3020 | + WHERE CheckID IS NULL OR CheckID = 148) |
3020 | 3021 | END
|
3021 | 3022 |
|
3022 | 3023 | /* Reliability - Database Files Stored in Azure */
|
|
3046 | 3047 | AND d.name NOT IN ( SELECT DISTINCT
|
3047 | 3048 | DatabaseName
|
3048 | 3049 | FROM #SkipChecks
|
3049 |
| - WHERE CheckID IS NULL) |
| 3050 | + WHERE CheckID IS NULL OR CheckID = 149) |
3050 | 3051 | END
|
3051 | 3052 |
|
3052 | 3053 |
|
@@ -3899,7 +3900,7 @@ IF @ProductVersionMajor >= 10
|
3899 | 3900 | AS Details
|
3900 | 3901 | FROM #dbcc_events_from_trace d
|
3901 | 3902 | WHERE d.[dbcc_event_trunc_upper] NOT IN (
|
3902 |
| - N'DBCC CHECKCB', N' DBCC CHECKALLOC' , N'DBCC CHECKTABLE', N'DBCC CHECKCATALOG', N'DBCC CHECKFILEGROUP', --CHECKDB related |
| 3903 | + N'DBCC CHECKDB', N' DBCC CHECKALLOC' , N'DBCC CHECKTABLE', N'DBCC CHECKCATALOG', N'DBCC CHECKFILEGROUP', --CHECKDB related |
3903 | 3904 | N'DBCC TRACEON', N'DBCC TRACEOFF', N'DBCC DBINFO', N'DBCC LOGINFO', N'DBCC INPUTBUFFER', N'DBCC TRACESTATUS', --Usually monitoring tool related
|
3904 | 3905 | N'DBCC CHECKIDENT', N'DBCC SHOW_STATISTICS', N'DBCC CHECKCONSTRAINTS', --Probably rational
|
3905 | 3906 | N'DBCC CLEANTABLE', N'DBCC CHECKPRIMARYFILE', N'DBCC OPENTRAN', 'DBCC SHOWFILESTATS' --Weird but okay
|
@@ -4324,7 +4325,7 @@ IF @ProductVersionMajor >= 10
|
4324 | 4325 | WHERE name NOT IN ( SELECT DISTINCT
|
4325 | 4326 | DatabaseName
|
4326 | 4327 | FROM #SkipChecks
|
4327 |
| - WHERE CheckID IS NULL) |
| 4328 | + WHERE CheckID IS NULL OR CheckID = 19) |
4328 | 4329 | AND is_published = 1
|
4329 | 4330 | OR is_subscribed = 1
|
4330 | 4331 | OR is_merge_published = 1
|
@@ -4695,7 +4696,7 @@ IF @ProductVersionMajor >= 10
|
4695 | 4696 | AND dbname NOT IN ( SELECT DISTINCT
|
4696 | 4697 | DatabaseName
|
4697 | 4698 | FROM #SkipChecks
|
4698 |
| - WHERE CheckID IS NULL) |
| 4699 | + WHERE CheckID IS NULL OR CheckID = 72) |
4699 | 4700 | DROP TABLE #partdb
|
4700 | 4701 | END
|
4701 | 4702 |
|
@@ -4903,7 +4904,7 @@ IF @ProductVersionMajor >= 10
|
4903 | 4904 | FROM [?].sys.database_scoped_configurations dsc
|
4904 | 4905 | INNER JOIN #DatabaseScopedConfigurationDefaults def1 ON dsc.configuration_id = def1.configuration_id
|
4905 | 4906 | LEFT OUTER JOIN #DatabaseScopedConfigurationDefaults def ON dsc.configuration_id = def.configuration_id AND (dsc.value = def.default_value OR dsc.value IS NULL) AND (dsc.value_for_secondary = def.default_value_for_secondary OR dsc.value_for_secondary IS NULL)
|
4906 |
| - LEFT OUTER JOIN #SkipChecks sk ON def.CheckID = sk.CheckID AND (sk.DatabaseName IS NULL OR sk.DatabaseName = DB_NAME()) |
| 4907 | + LEFT OUTER JOIN #SkipChecks sk ON (sk.CheckID IS NULL OR def.CheckID = sk.CheckID) AND (sk.DatabaseName IS NULL OR sk.DatabaseName = DB_NAME()) |
4907 | 4908 | WHERE def.configuration_id IS NULL AND sk.CheckID IS NULL ORDER BY 1
|
4908 | 4909 | OPTION (RECOMPILE);';
|
4909 | 4910 | END
|
@@ -5360,7 +5361,7 @@ IF @ProductVersionMajor >= 10
|
5360 | 5361 | DatabaseName
|
5361 | 5362 | FROM
|
5362 | 5363 | #SkipChecks
|
5363 |
| - WHERE CheckID IS NULL) |
| 5364 | + WHERE CheckID IS NULL OR CheckID = 68) |
5364 | 5365 | AND CONVERT(DATETIME, DB2.Value, 121) < DATEADD(DD,
|
5365 | 5366 | -14,
|
5366 | 5367 | CURRENT_TIMESTAMP)
|
@@ -5525,7 +5526,8 @@ IF @ProductVersionMajor >= 10
|
5525 | 5526 | AND DB_NAME(a.database_id) NOT IN (
|
5526 | 5527 | SELECT DISTINCT
|
5527 | 5528 | DatabaseName
|
5528 |
| - FROM #SkipChecks ) |
| 5529 | + FROM #SkipChecks |
| 5530 | + WHERE CheckID = 75 OR CheckID IS NULL) |
5529 | 5531 | AND a.size > 125000 /* Size is measured in pages here, so this gets us log files over 1GB. */
|
5530 | 5532 | AND a.size > ( SELECT SUM(CAST(b.size AS BIGINT))
|
5531 | 5533 | FROM sys.master_files b
|
@@ -5565,7 +5567,7 @@ IF @ProductVersionMajor >= 10
|
5565 | 5567 | AND name NOT IN ( SELECT DISTINCT
|
5566 | 5568 | DatabaseName
|
5567 | 5569 | FROM #SkipChecks
|
5568 |
| - WHERE CheckID IS NULL) |
| 5570 | + WHERE CheckID IS NULL OR CheckID = 76) |
5569 | 5571 | AND collation_name <> ( SELECT
|
5570 | 5572 | collation_name
|
5571 | 5573 | FROM
|
@@ -5601,10 +5603,9 @@ IF @ProductVersionMajor >= 10
|
5601 | 5603 | FROM sys.databases dSnap
|
5602 | 5604 | INNER JOIN sys.databases dOriginal ON dSnap.source_database_id = dOriginal.database_id
|
5603 | 5605 | AND dSnap.name NOT IN (
|
5604 |
| - SELECT DISTINCT |
5605 |
| - DatabaseName |
5606 |
| - FROM |
5607 |
| - #SkipChecks ) |
| 5606 | + SELECT DISTINCT DatabaseName |
| 5607 | + FROM #SkipChecks |
| 5608 | + WHERE CheckID = 77 OR CheckID IS NULL) |
5608 | 5609 | END
|
5609 | 5610 |
|
5610 | 5611 | IF NOT EXISTS ( SELECT 1
|
|
0 commit comments