Skip to content

Commit 2c62c72

Browse files
authored
Merge pull request #209 from LowlyDBA/development
Development
2 parents e9980c0 + 76b3e1e commit 2c62c72

File tree

7 files changed

+369
-365
lines changed

7 files changed

+369
-365
lines changed

appveyor/sqlcover/Coverage.opencoverxml

Lines changed: 240 additions & 240 deletions
Large diffs are not rendered by default.

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: 20210610
15+
Version: 20210622
1616

1717
MIT License
1818

@@ -102,7 +102,7 @@ BEGIN
102102
and [ep].[name] = @ExtendedPropertyName
103103
AND [ep].[minor_id] = 0
104104
AND [ep].[class] = 1
105-
ORDER BY [Owner] ASC, [Object_type] DESC, [name] ASC;';
105+
ORDER BY [Owner] ASC, [Object_type] DESC, [Name] ASC;';
106106
SET @ParmDefinition = N'@ExtendedPropertyName SYSNAME';
107107

108108
EXEC sp_executesql @SQLString
@@ -162,7 +162,7 @@ BEGIN
162162
-- If @ObjectName not in sysobjects, try systypes
163163
IF @ObjID IS NULL
164164
BEGIN
165-
SET @SQLSTring = N'SELECT @ObjID = user_type_id
165+
SET @SQLString = N'SELECT @ObjID = user_type_id
166166
FROM sys.types
167167
WHERE name = PARSENAME(@ObjectName,1);';
168168
SET @ParmDefinition = N'@ObjectName SYSNAME
@@ -388,7 +388,7 @@ BEGIN
388388
AND deps.deptype = 1;';
389389
SET @ParmDefinition = N'@ObjID INT, @HasDepen INT OUTPUT';
390390

391-
EXEC sp_executeSQL @SQLString
391+
EXEC sp_executesql @SQLString
392392
,@ParmDefinition
393393
,@ObjID
394394
,@HasDepen OUTPUT;

appveyor/sqlcover/[dbo].[sp_sizeoptimiser]

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

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

22-
Version: 20201110
22+
Version: 20210622
2323

2424
MIT License
2525

2626
Copyright (c) 2020 John McCall
2727

28-
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
29-
documentation files (the "Software"), to deal in the Software without restriction, including without limitation
30-
the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
28+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
29+
documentation files (the "Software"), to deal in the Software without restriction, including without limitation
30+
the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
3131
and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
3232

33-
The above copyright notice and this permission notice shall be included in all copies or substantial
33+
The above copyright notice and this permission notice shall be included in all copies or substantial
3434
portions of the Software.
3535

36-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
37-
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
38-
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
39-
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
36+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
37+
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
38+
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
39+
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
4040
DEALINGS IN THE SOFTWARE.
4141

4242
=========
@@ -48,7 +48,7 @@ Example:
4848
INSERT INTO @include ([database_name])
4949
VALUES (N'WideWorldImporters');
5050

51-
EXEC [dbo].[sp_sizeoptimiser] @IncludeDatabases = @include
51+
EXEC [dbo].[sp_sizeoptimiser] @IncludeDatabases = @include
5252
*/
5353

5454
BEGIN
@@ -130,8 +130,8 @@ BEGIN
130130
INSERT INTO #Databases
131131
SELECT [sd].[name]
132132
FROM [sys].[databases] AS [sd]
133-
WHERE NOT EXISTS (SELECT [d].[database_name]
134-
FROM @IncludeDatabases AS [d]
133+
WHERE NOT EXISTS (SELECT [d].[database_name]
134+
FROM @IncludeDatabases AS [d]
135135
WHERE [sd].[name] COLLATE database_default = REPLACE(REPLACE([d].[database_name], '[', ''), ']', ''))
136136
AND DATABASEPROPERTYEX([sd].[name], 'UPDATEABILITY') = N'READ_WRITE'
137137
AND DATABASEPROPERTYEX([sd].[name], 'USERACCESS') = N'MULTI_USER'
@@ -183,7 +183,7 @@ BEGIN
183183
BEGIN;
184184
SET @HasPersistedSamplePercent = 1;
185185
END;
186-
186+
187187
IF (@Verbose = 1)
188188
BEGIN;
189189
/* Print info */
@@ -271,7 +271,7 @@ BEGIN
271271
END;
272272
BEGIN;
273273
SET @CheckSQL = N'';
274-
SELECT @CheckSQL = @CheckSQL +
274+
SELECT @CheckSQL = @CheckSQL +
275275
N'USE ' + QUOTENAME([database_name]) + N';
276276
INSERT INTO #results ([check_num], [check_type], [obj_type], [db_name], [obj_name], [col_name], [message], [ref_link])
277277
SELECT @CheckNumber
@@ -304,7 +304,7 @@ BEGIN
304304
END;
305305
BEGIN;
306306
SET @CheckSQL = N'';
307-
SELECT @CheckSQL = @CheckSQL +
307+
SELECT @CheckSQL = @CheckSQL +
308308
N'USE ' + QUOTENAME([database_name]) + N'; WITH archaic AS (
309309
SELECT QUOTENAME(SCHEMA_NAME(t.schema_id)) + ''.'' + QUOTENAME(t.name) AS [obj_name]
310310
,QUOTENAME(c.name) AS [col_name]
@@ -353,7 +353,7 @@ BEGIN
353353
END;
354354
BEGIN;
355355
SET @CheckSQL = N'';
356-
SELECT @CheckSQL = @CheckSQL +
356+
SELECT @CheckSQL = @CheckSQL +
357357
N'USE ' + QUOTENAME([database_name]) + ';
358358
WITH UnspecifiedVarChar AS (
359359
SELECT QUOTENAME(SCHEMA_NAME(t.schema_id)) + ''.'' + QUOTENAME(t.name) AS [obj_name]
@@ -391,7 +391,7 @@ BEGIN
391391
END;
392392
BEGIN;
393393
SET @CheckSQL = N'';
394-
SELECT @CheckSQL = @CheckSQL +
394+
SELECT @CheckSQL = @CheckSQL +
395395
N'USE ' + QUOTENAME([database_name]) + N';
396396
INSERT INTO #results ([check_num], [check_type], [obj_type], [db_name], [obj_name], [col_name], [message], [ref_link])
397397
SELECT @CheckNumber
@@ -423,7 +423,7 @@ BEGIN
423423
IF (@IsExpress = 1)
424424
BEGIN;
425425
SET @CheckSQL = N'';
426-
SELECT @CheckSQL = @CheckSQL +
426+
SELECT @CheckSQL = @CheckSQL +
427427
N'USE ' + QUOTENAME([database_name]) + N';
428428
INSERT INTO #results ([check_num], [check_type], [obj_type], [db_name], [obj_name], [col_name], [message], [ref_link])
429429
SELECT @CheckNumber
@@ -457,7 +457,7 @@ BEGIN
457457
END;
458458
BEGIN;
459459
SET @CheckSQL = N'';
460-
SELECT @CheckSQL = @CheckSQL +
460+
SELECT @CheckSQL = @CheckSQL +
461461
N'USE ' + QUOTENAME([database_name]) + N';
462462
INSERT INTO #results ([check_num], [check_type], [obj_type], [db_name], [obj_name], [col_name], [message], [ref_link])
463463
SELECT @CheckNumber
@@ -486,7 +486,7 @@ BEGIN
486486
END;
487487
BEGIN;
488488
SET @CheckSQL = N'';
489-
SELECT @CheckSQL = @CheckSQL +
489+
SELECT @CheckSQL = @CheckSQL +
490490
N'USE ' + QUOTENAME([database_name]) + N';
491491
INSERT INTO #results ([check_num], [check_type], [obj_type], [db_name], [obj_name], [col_name], [message], [ref_link])
492492
SELECT @CheckNumber
@@ -517,7 +517,7 @@ BEGIN
517517
IF (@IsExpress = 1)
518518
BEGIN;
519519
SET @CheckSQL = N'';
520-
SELECT @CheckSQL = @CheckSQL +
520+
SELECT @CheckSQL = @CheckSQL +
521521
N'USE ' + QUOTENAME([database_name]) + N';
522522
INSERT INTO #results ([check_num], [check_type], [obj_type], [db_name], [obj_name], [col_name], [message], [ref_link])
523523
SELECT @CheckNumber
@@ -552,7 +552,7 @@ BEGIN
552552
END;
553553
BEGIN;
554554
SET @CheckSQL = N'';
555-
SELECT @CheckSQL = @CheckSQL +
555+
SELECT @CheckSQL = @CheckSQL +
556556
N'USE ' + QUOTENAME([database_name]) + N';
557557
INSERT INTO #results ([check_num], [check_type], [obj_type], [db_name], [obj_name], [col_name], [message], [ref_link])
558558
SELECT @CheckNumber
@@ -584,7 +584,7 @@ BEGIN
584584
END;
585585
BEGIN;
586586
SET @CheckSQL = N'';
587-
SELECT @CheckSQL = @CheckSQL +
587+
SELECT @CheckSQL = @CheckSQL +
588588
N'USE ' + QUOTENAME([database_name]) + N';
589589
INSERT INTO #results ([check_num], [check_type], [obj_type], [db_name], [obj_name], [col_name], [message], [ref_link])
590590
SELECT @CheckNumber
@@ -617,7 +617,7 @@ BEGIN
617617
IF (@IsExpress = 1)
618618
BEGIN;
619619
SET @CheckSQL = N'';
620-
SELECT @CheckSQL = @CheckSQL +
620+
SELECT @CheckSQL = @CheckSQL +
621621
N'USE ' + QUOTENAME([database_name]) + N';
622622
INSERT INTO #results ([check_num], [check_type], [obj_type], [db_name], [obj_name], [col_name], [message], [ref_link])
623623
SELECT @CheckNumber
@@ -626,7 +626,7 @@ BEGIN
626626
,QUOTENAME(DB_NAME())
627627
,QUOTENAME(DB_NAME(database_id))
628628
,NULL
629-
,N''Database file '' + name + '' has a maximum growth set to '' +
629+
,N''Database file '' + name + '' has a maximum growth set to '' +
630630
CASE
631631
WHEN max_size = -1
632632
THEN ''Unlimited''
@@ -685,7 +685,7 @@ BEGIN
685685
IF(@IsExpress = 1)
686686
BEGIN;
687687
SET @CheckSQL = N'';
688-
SELECT @CheckSQL = @CheckSQL +
688+
SELECT @CheckSQL = @CheckSQL +
689689
N'USE ' + QUOTENAME([database_name]) + N';
690690
INSERT INTO #results ([check_num], [check_type], [obj_type], [db_name], [obj_name], [col_name], [message], [ref_link])
691691
SELECT @CheckNumber
@@ -717,7 +717,7 @@ BEGIN
717717
END;
718718
BEGIN;
719719
SET @CheckSQL = N'';
720-
SELECT @CheckSQL = @CheckSQL +
720+
SELECT @CheckSQL = @CheckSQL +
721721
N'USE ' + QUOTENAME([database_name]) + N';
722722
INSERT INTO #results ([check_num], [check_type], [obj_type], [db_name], [obj_name], [col_name], [message], [ref_link])
723723
SELECT @CheckNumber
@@ -750,7 +750,7 @@ BEGIN
750750
END;
751751
BEGIN;
752752
SET @CheckSQL = N'';
753-
SELECT @CheckSQL = @CheckSQL +
753+
SELECT @CheckSQL = @CheckSQL +
754754
N' USE ? ;
755755
BEGIN
756756
IF OBJECT_ID(''tempdb..#Indexes'') IS NOT NULL
@@ -1067,9 +1067,9 @@ BEGIN
10671067
WHERE [sc].[stats_column_id] = 1
10681068
AND [s].[has_filter] = 0
10691069
AND [s].[no_recompute] = 0
1070-
AND [ac].[is_nullable] = 1
1070+
AND [ac].[is_nullable] = 1
10711071
AND NOT EXISTS (SELECT 1 -- Compressed tables not compatible with sparse cols
1072-
FROM [sys].[partitions] AS [p]
1072+
FROM [sys].[partitions] AS [p]
10731073
WHERE [p].[object_id] = [i].[object_id]
10741074
AND [p].[data_compression] > 0) ';
10751075
IF @HasTempStat = 1
@@ -1176,7 +1176,7 @@ BEGIN
11761176
END;
11771177
BEGIN
11781178
SET @CheckSQL = N'';
1179-
SELECT @CheckSQL = @CheckSQL +
1179+
SELECT @CheckSQL = @CheckSQL +
11801180
N'USE ' + QUOTENAME([database_name]) + N';
11811181
INSERT INTO #results ([check_num], [check_type], [obj_type], [db_name], [obj_name], [col_name], [message], [ref_link])
11821182
SELECT @CheckNumber
@@ -1217,12 +1217,12 @@ BEGIN
12171217
DECLARE @ErrorState INT = ERROR_STATE();
12181218

12191219
RAISERROR(@ErrorMessage, @ErrorSeverity, @ErrorState) WITH NOWAIT;
1220-
SET @msg = CONCAT('Actual error number: ', @ErrorNumber);
1221-
RAISERROR(@msg, 16, 1);
1222-
SET @msg = CONCAT('Actual line number: ', @ErrorLine);
1223-
RAISERROR(@msg, 16, 1);
1224-
SET @msg = CONCAT('Check number: ', @CheckNumber);
1225-
RAISERROR(@msg, 16, 1);
1220+
SET @Msg = CONCAT('Actual error number: ', @ErrorNumber);
1221+
RAISERROR(@Msg, 16, 1);
1222+
SET @Msg = CONCAT('Actual line number: ', @ErrorLine);
1223+
RAISERROR(@Msg, 16, 1);
1224+
SET @Msg = CONCAT('Check number: ', @CheckNumber);
1225+
RAISERROR(@Msg, 16, 1);
12261226
END;
12271227
END CATCH;
12281228
END;

docs/sp_doc.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,13 +72,16 @@ EXEC dbo.sp_doc @DatabaseName = 'WideWorldImporters', @ExtendedPropertyName = 'M
7272

7373
### Output to File
7474

75-
Batch:
75+
#### Batch
7676

7777
```batchfile
7878
sqlcmd -S localhost -d master -Q "exec sp_doc @DatabaseName = 'WideWorldImporters';" -o readme.md -y 0
7979
```
8080

81-
PowerShell / DbaTools:
81+
**Note:** The `-y 0` option is [important to specify][sqlcmd] so that variable length
82+
output is not capped at the default of 256 characters by sqlcmd.
83+
84+
#### PowerShell / DbaTools
8285

8386
```powershell
8487
$Query = "EXEC sp_doc @DatabaseName = 'WideWorldImporters';"
@@ -143,4 +146,5 @@ Check out the other scripts in the [DBA MultiTool][tool].
143146
[issue]: https://github.com/LowlyDBA/dba-multitool/issues
144147
[sample]: assets/WideWorldImporters.md
145148
[so]: https://stackoverflow.com/a/37284582/4406684
149+
[sqlcmd]: https://docs.microsoft.com/en-us/sql/tools/sqlcmd-utility?view=sql-server-ver15#command-line-options
146150
[UVBug]: https://feedback.azure.com/forums/908035-sql-server/suggestions/32899324-ssms-ignores-final-r-n-crlf-carriage-return

0 commit comments

Comments
 (0)