Skip to content

Commit c753d4a

Browse files
authored
Merge pull request #230 from LowlyDBA/development
Development
2 parents 52d4b51 + 2326060 commit c753d4a

12 files changed

+107
-60
lines changed

.gitattributes

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
# linguist overrides
2-
*.sql linguist-language=TSQL
3-
*.sql diff
2+
*.sql linguist-language=TSQL
3+
*.sql diff
4+
5+
# exclude from releases
6+
.* export-ignore
7+
/tests export-ignore
8+
/appveyor export-ignore
49

510
# line endings for code coverage files
6-
appveyor/sqlcover/* text eol=lf
11+
appveyor/sqlcover/* text eol=lf

.github/linter-conf/.tsqllintrc_150

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
11
{
22
"rules": {
3+
"case-sensitive-variables": "error",
34
"concat-strings": "error",
4-
"conditional-begin-end": "error",
5+
"conditional-begin-end": "off",
6+
"count-star": "error",
57
"cross-database-transaction": "error",
68
"data-compression": "warn",
79
"data-type-length": "error",
10+
"delete-where": "error",
811
"disallow-cursors": "off",
912
"full-text": "error",
1013
"information-schema": "error",
1114
"keyword-capitalization": "error",
1215
"linked-server": "error",
1316
"multi-table-alias": "error",
17+
"named-constraint": "error",
1418
"non-sargable": "warn",
1519
"object-property": "error",
1620
"print-statement": "error",
@@ -22,7 +26,9 @@
2226
"set-quoted-identifier": "error",
2327
"set-transaction-isolation-level": "off",
2428
"set-variable": "off",
25-
"upper-lower": "error"
29+
"update-where": "error",
30+
"upper-lower": "error",
31+
"unicode-string": "error"
2632
},
2733
"compatability-level": 150
2834
}

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2021 John McCall
3+
Copyright (c) 2018-2022 John McCall
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

appveyor/sqlcover/[dbo].[sp_estindex]

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ sp_estindex - Estimate a new index's size and statistics.
2222

2323
Part of the DBA MultiTool http://dba-multitool.org
2424

25-
Version: 20210908
25+
Version: 20220124
2626

2727
MIT License
2828

@@ -267,7 +267,7 @@ BEGIN TRY
267267
WHERE COALESCE([equality_columns] + ', ', '') + [inequality_columns] = @QuotedKeyColumns
268268
AND ([included_columns] = @QuotedInclColumns OR [included_columns] IS NULL);
269269

270-
IF (SELECT COUNT(*) FROM ##TempMissingIndex) = 0 AND (@Verbose = 1)
270+
IF (SELECT COUNT(1) FROM ##TempMissingIndex) = 0 AND (@Verbose = 1)
271271
BEGIN;
272272
SET @Msg = 'No matching missing index statistics found.';
273273
RAISERROR(@Msg, 10, 1) WITH NOWAIT;

appveyor/sqlcover/[dbo].[sp_helpme]

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ sp_helpme - A drop-in modern alternative to sp_help.
1212

1313
Part of the DBA MultiTool http://dba-multitool.org
1414

15-
Version: 20210622
15+
Version: 20220124
1616

1717
MIT License
1818

@@ -76,13 +76,13 @@ BEGIN
7676
END;
7777

7878
/* Check for Hidden Columns feature */
79-
IF 1 = (SELECT COUNT(*) FROM sys.all_columns AS ac WHERE ac.name = 'is_hidden' AND OBJECT_NAME(ac.object_id) = 'all_columns')
79+
IF 1 = (SELECT COUNT(1) FROM sys.all_columns AS ac WHERE ac.name = 'is_hidden' AND OBJECT_NAME(ac.object_id) = 'all_columns')
8080
BEGIN
8181
SET @HasHidden = 1;
8282
END;
8383

8484
/* Check for Masked Columns feature */
85-
IF 1 = (SELECT COUNT(*) FROM sys.all_columns AS ac WHERE ac.name = 'is_masked' AND OBJECT_NAME(ac.object_id) = 'all_columns')
85+
IF 1 = (SELECT COUNT(1) FROM sys.all_columns AS ac WHERE ac.name = 'is_masked' AND OBJECT_NAME(ac.object_id) = 'all_columns')
8686
BEGIN
8787
SET @HasMasked = 1;
8888
END;
@@ -380,7 +380,7 @@ BEGIN
380380
EXEC sys.sp_helpindex @ObjectName;
381381
EXEC sys.sp_helpconstraint @ObjectName,'nomsg';
382382

383-
SET @SQLString = N'SELECT @HasDepen = COUNT(*)
383+
SET @SQLString = N'SELECT @HasDepen = COUNT(1)
384384
FROM sys.objects obj, sysdepends deps
385385
WHERE obj.[type] =''V''
386386
AND obj.[object_id] = deps.id

appveyor/sqlcover/[dbo].[sp_sizeoptimiser]

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ sp_sizeoptimiser - Recommends space saving measures for data footprints.
1919

2020
Part of the DBA MultiTool http://dba-multitool.org
2121

22-
Version: 20210622
22+
Version: 20220124
2323

2424
MIT License
2525

@@ -74,7 +74,7 @@ BEGIN
7474
END
7575

7676
/* Validate database list */
77-
IF (SELECT COUNT(*) FROM @IncludeDatabases) >= 1 AND (SELECT COUNT(*) FROM @ExcludeDatabases) >= 1
77+
IF (SELECT COUNT(1) FROM @IncludeDatabases) >= 1 AND (SELECT COUNT(1) FROM @ExcludeDatabases) >= 1
7878
BEGIN
7979
SET @Msg = 'Both @IncludeDatabases and @ExcludeDatabases cannot be specified.';
8080
RAISERROR(@Msg, 16, 1);
@@ -84,7 +84,7 @@ BEGIN
8484
[database_name] SYSNAME NOT NULL);
8585

8686
/* Build database list if no parameters set */
87-
IF (SELECT COUNT(*) FROM @IncludeDatabases) = 0 AND (SELECT COUNT(*) FROM @ExcludeDatabases) = 0
87+
IF (SELECT COUNT(1) FROM @IncludeDatabases) = 0 AND (SELECT COUNT(1) FROM @ExcludeDatabases) = 0
8888
BEGIN
8989
INSERT INTO #Databases
9090
SELECT [sd].[name]
@@ -96,7 +96,7 @@ BEGIN
9696
AND DATABASEPROPERTYEX([sd].[name], 'STATUS') = N'ONLINE';
9797
END;
9898
/* Build database list from @IncludeDatabases */
99-
ELSE IF (SELECT COUNT(*) FROM @IncludeDatabases) >= 1
99+
ELSE IF (SELECT COUNT(1) FROM @IncludeDatabases) >= 1
100100
BEGIN
101101
INSERT INTO #Databases
102102
SELECT [sd].[name]
@@ -106,7 +106,7 @@ BEGIN
106106
AND DATABASEPROPERTYEX([sd].[name], 'USERACCESS') = N'MULTI_USER'
107107
AND DATABASEPROPERTYEX([sd].[name], 'STATUS') = N'ONLINE';
108108

109-
IF (SELECT COUNT(*) FROM @IncludeDatabases) > (SELECT COUNT(*) FROM #Databases)
109+
IF (SELECT COUNT(1) FROM @IncludeDatabases) > (SELECT COUNT(1) FROM #Databases)
110110
BEGIN
111111
DECLARE @ErrorDatabaseList NVARCHAR(MAX);
112112

@@ -125,7 +125,7 @@ BEGIN
125125
END;
126126
END;
127127
/* Build database list from @ExcludeDatabases */
128-
ELSE IF (SELECT COUNT(*) FROM @ExcludeDatabases) >= 1
128+
ELSE IF (SELECT COUNT(1) FROM @ExcludeDatabases) >= 1
129129
BEGIN
130130
INSERT INTO #Databases
131131
SELECT [sd].[name]
@@ -824,18 +824,18 @@ BEGIN
824824
FROM #Indexes; '
825825

826826
+ /* Find duplicate indexes */ +
827-
N'SELECT COUNT(*) AS [num_dup_indexes], [ix_incl_checksum], [object_id]
827+
N'SELECT COUNT(1) AS [num_dup_indexes], [ix_incl_checksum], [object_id]
828828
INTO #MatchingIdxInclChecksum
829829
FROM #IdxChecksum
830830
GROUP BY [ix_incl_checksum], [object_id]
831-
HAVING COUNT(*) > 1; '
831+
HAVING COUNT(1) > 1; '
832832

833833
+ /* Find overlapping indexes with same indexed columns */ +
834-
N'SELECT COUNT(*) AS [num_dup_indexes], [ix_checksum], [object_id]
834+
N'SELECT COUNT(1) AS [num_dup_indexes], [ix_checksum], [object_id]
835835
INTO #MatchingIdxChecksum
836836
FROM #IdxChecksum
837837
GROUP BY [ix_checksum], [object_id]
838-
HAVING COUNT(*) > 1
838+
HAVING COUNT(1) > 1
839839

840840
INSERT INTO #DuplicateIndex
841841
SELECT N''Inefficient Indexes - Duplicate'' AS [check_type]

docs/_config.yml

Lines changed: 0 additions & 6 deletions
This file was deleted.

install_dba-multitool.sql

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2352,7 +2352,7 @@ sp_estindex - Estimate a new index's size and statistics.
23522352
23532353
Part of the DBA MultiTool http://dba-multitool.org
23542354
2355-
Version: 20210908
2355+
Version: 20220124
23562356
23572357
MIT License
23582358
@@ -2597,7 +2597,7 @@ BEGIN TRY
25972597
WHERE COALESCE([equality_columns] + ', ', '') + [inequality_columns] = @QuotedKeyColumns
25982598
AND ([included_columns] = @QuotedInclColumns OR [included_columns] IS NULL);
25992599

2600-
IF (SELECT COUNT(*) FROM ##TempMissingIndex) = 0 AND (@Verbose = 1)
2600+
IF (SELECT COUNT(1) FROM ##TempMissingIndex) = 0 AND (@Verbose = 1)
26012601
BEGIN;
26022602
SET @Msg = 'No matching missing index statistics found.';
26032603
RAISERROR(@Msg, 10, 1) WITH NOWAIT;
@@ -3205,7 +3205,7 @@ sp_helpme - A drop-in modern alternative to sp_help.
32053205
32063206
Part of the DBA MultiTool http://dba-multitool.org
32073207
3208-
Version: 20210622
3208+
Version: 20220124
32093209
32103210
MIT License
32113211
@@ -3269,13 +3269,13 @@ BEGIN
32693269
END;
32703270

32713271
/* Check for Hidden Columns feature */
3272-
IF 1 = (SELECT COUNT(*) FROM sys.all_columns AS ac WHERE ac.name = 'is_hidden' AND OBJECT_NAME(ac.object_id) = 'all_columns')
3272+
IF 1 = (SELECT COUNT(1) FROM sys.all_columns AS ac WHERE ac.name = 'is_hidden' AND OBJECT_NAME(ac.object_id) = 'all_columns')
32733273
BEGIN
32743274
SET @HasHidden = 1;
32753275
END;
32763276

32773277
/* Check for Masked Columns feature */
3278-
IF 1 = (SELECT COUNT(*) FROM sys.all_columns AS ac WHERE ac.name = 'is_masked' AND OBJECT_NAME(ac.object_id) = 'all_columns')
3278+
IF 1 = (SELECT COUNT(1) FROM sys.all_columns AS ac WHERE ac.name = 'is_masked' AND OBJECT_NAME(ac.object_id) = 'all_columns')
32793279
BEGIN
32803280
SET @HasMasked = 1;
32813281
END;
@@ -3573,7 +3573,7 @@ BEGIN
35733573
EXEC sys.sp_helpindex @ObjectName;
35743574
EXEC sys.sp_helpconstraint @ObjectName,'nomsg';
35753575

3576-
SET @SQLString = N'SELECT @HasDepen = COUNT(*)
3576+
SET @SQLString = N'SELECT @HasDepen = COUNT(1)
35773577
FROM sys.objects obj, sysdepends deps
35783578
WHERE obj.[type] =''V''
35793579
AND obj.[object_id] = deps.id
@@ -3749,7 +3749,7 @@ sp_sizeoptimiser - Recommends space saving measures for data footprints.
37493749
37503750
Part of the DBA MultiTool http://dba-multitool.org
37513751
3752-
Version: 20210622
3752+
Version: 20220124
37533753
37543754
MIT License
37553755
@@ -3804,7 +3804,7 @@ BEGIN
38043804
END
38053805

38063806
/* Validate database list */
3807-
IF (SELECT COUNT(*) FROM @IncludeDatabases) >= 1 AND (SELECT COUNT(*) FROM @ExcludeDatabases) >= 1
3807+
IF (SELECT COUNT(1) FROM @IncludeDatabases) >= 1 AND (SELECT COUNT(1) FROM @ExcludeDatabases) >= 1
38083808
BEGIN
38093809
SET @Msg = 'Both @IncludeDatabases and @ExcludeDatabases cannot be specified.';
38103810
RAISERROR(@Msg, 16, 1);
@@ -3814,7 +3814,7 @@ BEGIN
38143814
[database_name] SYSNAME NOT NULL);
38153815

38163816
/* Build database list if no parameters set */
3817-
IF (SELECT COUNT(*) FROM @IncludeDatabases) = 0 AND (SELECT COUNT(*) FROM @ExcludeDatabases) = 0
3817+
IF (SELECT COUNT(1) FROM @IncludeDatabases) = 0 AND (SELECT COUNT(1) FROM @ExcludeDatabases) = 0
38183818
BEGIN
38193819
INSERT INTO #Databases
38203820
SELECT [sd].[name]
@@ -3826,7 +3826,7 @@ BEGIN
38263826
AND DATABASEPROPERTYEX([sd].[name], 'STATUS') = N'ONLINE';
38273827
END;
38283828
/* Build database list from @IncludeDatabases */
3829-
ELSE IF (SELECT COUNT(*) FROM @IncludeDatabases) >= 1
3829+
ELSE IF (SELECT COUNT(1) FROM @IncludeDatabases) >= 1
38303830
BEGIN
38313831
INSERT INTO #Databases
38323832
SELECT [sd].[name]
@@ -3836,7 +3836,7 @@ BEGIN
38363836
AND DATABASEPROPERTYEX([sd].[name], 'USERACCESS') = N'MULTI_USER'
38373837
AND DATABASEPROPERTYEX([sd].[name], 'STATUS') = N'ONLINE';
38383838

3839-
IF (SELECT COUNT(*) FROM @IncludeDatabases) > (SELECT COUNT(*) FROM #Databases)
3839+
IF (SELECT COUNT(1) FROM @IncludeDatabases) > (SELECT COUNT(1) FROM #Databases)
38403840
BEGIN
38413841
DECLARE @ErrorDatabaseList NVARCHAR(MAX);
38423842

@@ -3855,7 +3855,7 @@ BEGIN
38553855
END;
38563856
END;
38573857
/* Build database list from @ExcludeDatabases */
3858-
ELSE IF (SELECT COUNT(*) FROM @ExcludeDatabases) >= 1
3858+
ELSE IF (SELECT COUNT(1) FROM @ExcludeDatabases) >= 1
38593859
BEGIN
38603860
INSERT INTO #Databases
38613861
SELECT [sd].[name]
@@ -4554,18 +4554,18 @@ BEGIN
45544554
FROM #Indexes; '
45554555

45564556
+ /* Find duplicate indexes */ +
4557-
N'SELECT COUNT(*) AS [num_dup_indexes], [ix_incl_checksum], [object_id]
4557+
N'SELECT COUNT(1) AS [num_dup_indexes], [ix_incl_checksum], [object_id]
45584558
INTO #MatchingIdxInclChecksum
45594559
FROM #IdxChecksum
45604560
GROUP BY [ix_incl_checksum], [object_id]
4561-
HAVING COUNT(*) > 1; '
4561+
HAVING COUNT(1) > 1; '
45624562

45634563
+ /* Find overlapping indexes with same indexed columns */ +
4564-
N'SELECT COUNT(*) AS [num_dup_indexes], [ix_checksum], [object_id]
4564+
N'SELECT COUNT(1) AS [num_dup_indexes], [ix_checksum], [object_id]
45654565
INTO #MatchingIdxChecksum
45664566
FROM #IdxChecksum
45674567
GROUP BY [ix_checksum], [object_id]
4568-
HAVING COUNT(*) > 1
4568+
HAVING COUNT(1) > 1
45694569
45704570
INSERT INTO #DuplicateIndex
45714571
SELECT N''Inefficient Indexes - Duplicate'' AS [check_type]

sp_estindex.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ sp_estindex - Estimate a new index's size and statistics.
108108
109109
Part of the DBA MultiTool http://dba-multitool.org
110110
111-
Version: 20210908
111+
Version: 20220124
112112
113113
MIT License
114114
@@ -353,7 +353,7 @@ BEGIN TRY
353353
WHERE COALESCE([equality_columns] + ', ', '') + [inequality_columns] = @QuotedKeyColumns
354354
AND ([included_columns] = @QuotedInclColumns OR [included_columns] IS NULL);
355355

356-
IF (SELECT COUNT(*) FROM ##TempMissingIndex) = 0 AND (@Verbose = 1)
356+
IF (SELECT COUNT(1) FROM ##TempMissingIndex) = 0 AND (@Verbose = 1)
357357
BEGIN;
358358
SET @Msg = 'No matching missing index statistics found.';
359359
RAISERROR(@Msg, 10, 1) WITH NOWAIT;

sp_helpme.sql

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ sp_helpme - A drop-in modern alternative to sp_help.
5656
5757
Part of the DBA MultiTool http://dba-multitool.org
5858
59-
Version: 20210622
59+
Version: 20220124
6060
6161
MIT License
6262
@@ -120,13 +120,13 @@ BEGIN
120120
END;
121121

122122
/* Check for Hidden Columns feature */
123-
IF 1 = (SELECT COUNT(*) FROM sys.all_columns AS ac WHERE ac.name = 'is_hidden' AND OBJECT_NAME(ac.object_id) = 'all_columns')
123+
IF 1 = (SELECT COUNT(1) FROM sys.all_columns AS ac WHERE ac.name = 'is_hidden' AND OBJECT_NAME(ac.object_id) = 'all_columns')
124124
BEGIN
125125
SET @HasHidden = 1;
126126
END;
127127

128128
/* Check for Masked Columns feature */
129-
IF 1 = (SELECT COUNT(*) FROM sys.all_columns AS ac WHERE ac.name = 'is_masked' AND OBJECT_NAME(ac.object_id) = 'all_columns')
129+
IF 1 = (SELECT COUNT(1) FROM sys.all_columns AS ac WHERE ac.name = 'is_masked' AND OBJECT_NAME(ac.object_id) = 'all_columns')
130130
BEGIN
131131
SET @HasMasked = 1;
132132
END;
@@ -424,7 +424,7 @@ BEGIN
424424
EXEC sys.sp_helpindex @ObjectName;
425425
EXEC sys.sp_helpconstraint @ObjectName,'nomsg';
426426

427-
SET @SQLString = N'SELECT @HasDepen = COUNT(*)
427+
SET @SQLString = N'SELECT @HasDepen = COUNT(1)
428428
FROM sys.objects obj, sysdepends deps
429429
WHERE obj.[type] =''V''
430430
AND obj.[object_id] = deps.id

0 commit comments

Comments
 (0)