1111GO
1212
1313ALTER PROCEDURE [dbo].[sp_doc]
14- @DatabaseName SYSNAME = NULL
14+ @DatabaseName SYSNAME = NULL
1515 ,@ExtendedPropertyName VARCHAR (100 ) = ' Description'
16+ /* Parameters defined here for testing only */
17+ ,@SqlMajorVersion TINYINT = 0
18+ ,@SqlMinorVersion SMALLINT = 0
1619WITH RECOMPILE
1720AS
1821
@@ -48,28 +51,27 @@ BEGIN
4851 SET ANSI_NULLS ON ;
4952 SET QUOTED_IDENTIFIER ON ;
5053
51- DECLARE @sql NVARCHAR(MAX)
54+ DECLARE @Sql NVARCHAR(MAX)
5255 ,@ParmDefinition NVARCHAR(500 )
5356 ,@QuotedDatabaseName SYSNAME
54- ,@msg NVARCHAR(MAX)
55- ,@version NVARCHAR(50 ) = CAST(SERVERPROPERTY(' PRODUCTVERSION' ) AS NVARCHAR)
56- ,@MajorVersion TINYINT = 0
57- ,@minorVersion INT = 0
58- ,@LastUpdated NVARCHAR(20 ) = ' 2020-06-24' ;
57+ ,@Msg NVARCHAR(MAX)
58+ ,@LastUpdated NVARCHAR(20 ) = ' 2020-06-24' ;
5959
6060 -- Find Version
61- DECLARE @tmpVersion NVARCHAR(100 );
62-
63- SET @MajorVersion = (SELECT CAST(LEFT(@version, CHARINDEX(' .' , @version, 0 )- 1 ) AS INT ));
64- SET @tmpVersion = (SELECT RIGHT(@version, LEN(@version) - CHARINDEX(' .' , @version, 0 )));
65- SET @tmpVersion = (SELECT RIGHT(@tmpVersion, LEN(@tmpVersion) - CHARINDEX(' .' , @tmpVersion, 0 )));
66- SET @minorVersion = (SELECT LEFT(@tmpVersion,CHARINDEX(' .' , @tmpVersion, 0 ) - 1 ));
61+ IF (@SqlMajorVersion = 0 )
62+ BEGIN ;
63+ SET @SqlMajorVersion = CAST(SERVERPROPERTY(' ProductMajorVersion' ) AS TINYINT);
64+ END;
65+ IF (@SqlMinorVersion = 0 )
66+ BEGIN ;
67+ SET @SqlMinorVersion = CAST(SERVERPROPERTY(' ProductMinorVersion' ) AS TINYINT);
68+ END;
6769
6870 -- Validate Version
69- IF (@MajorVersion < 11 )
71+ IF (@SqlMajorVersion < 11 )
7072 BEGIN ;
71- SET @msg = ' SQL Server versions below 2012 are not supported, sorry!' ;
72- RAISERROR(@msg , 16 , 1 );
73+ SET @Msg = ' SQL Server versions below 2012 are not supported, sorry!' ;
74+ RAISERROR(@Msg , 16 , 1 );
7375 END;
7476
7577 -- Check database name
@@ -79,22 +81,22 @@ BEGIN
7981 END
8082 ELSE IF (DB_ID(@DatabaseName) IS NULL )
8183 BEGIN ;
82- SET @msg = ' Database not available.' ;
83- RAISERROR(@msg , 16 , 1 );
84+ SET @Msg = ' Database not available.' ;
85+ RAISERROR(@Msg , 16 , 1 );
8486 END;
8587
8688 SET @QuotedDatabaseName = QUOTENAME(@DatabaseName); -- Avoid injections
8789
8890 -- Create table to hold EP data
89- SET @sql = N' USE ' + @QuotedDatabaseName + '
91+ SET @Sql = N' USE ' + @QuotedDatabaseName + '
9092 CREATE TABLE #markdown (
9193 [id] INT IDENTITY(1,1),
9294 [value] NVARCHAR(MAX));'
9395
9496 /* **********************
9597 Generate markdown for database
9698 ************************/
97- SET @sql = @sql + N'
99+ SET @Sql = @Sql + N'
98100 --Database Name
99101 INSERT INTO #markdown (value)
100102 VALUES (CONCAT(' ' # ' ' , @DatabaseName) COLLATE DATABASE_DEFAULT);' +
@@ -115,7 +117,7 @@ BEGIN
115117 /* **********************
116118 Generate markdown for tables
117119 ************************/
118- SET @sql = @sql + N'
120+ SET @Sql = @Sql + N'
119121 INSERT INTO #markdown (value)
120122 VALUES (CONCAT(CHAR(13), CHAR(10), ' ' ## Tables' ' ))
121123 ,(CONCAT(CHAR(13), CHAR(10), ' ' <details><summary>Click to expand</summary>' ' , CHAR(13), CHAR(10)));' +
@@ -311,7 +313,7 @@ BEGIN
311313 /* **********************
312314 Generate markdown for views
313315 ************************/
314- SET @sql = @sql + N'
316+ SET @Sql = @Sql + N'
315317 INSERT INTO #markdown (value)
316318 VALUES (CONCAT(CHAR(13), CHAR(10), ' ' ## Views' ' ))
317319 ,(CONCAT(CHAR(13), CHAR(10), ' ' <details><summary>Click to expand</summary>' ' , CHAR(13), CHAR(10)));' +
@@ -425,7 +427,7 @@ BEGIN
425427 /* **********************
426428 Generate markdown for procedures
427429 ************************/
428- SET @sql = @sql + N'
430+ SET @Sql = @Sql + N'
429431 INSERT INTO #markdown
430432 VALUES (CONCAT(CHAR(13), CHAR(10), ' ' ## Stored Procedures' ' ))
431433 ,(CONCAT(CHAR(13), CHAR(10), ' ' <details><summary>Click to expand</summary>' ' , CHAR(13), CHAR(10)));' +
@@ -534,7 +536,7 @@ BEGIN
534536 /* **********************
535537 Generate markdown for scalar functions
536538 ************************/
537- SET @sql = @sql + N'
539+ SET @Sql = @Sql + N'
538540 INSERT INTO #markdown (value)
539541 VALUES (CONCAT(CHAR(13), CHAR(10), ' ' ## Scalar Functions' ' ))
540542 ,(CONCAT(CHAR(13), CHAR(10), ' ' <details><summary>Click to expand</summary>' ' , CHAR(13), CHAR(10)));' +
@@ -646,7 +648,7 @@ BEGIN
646648 /* **********************
647649 Generate markdown for table functions
648650 ************************/
649- SET @sql = @sql + N'
651+ SET @Sql = @Sql + N'
650652 INSERT INTO #markdown
651653 VALUES (CONCAT(CHAR(13), CHAR(10), ' ' ## Table Functions' ' ))
652654 ,(CONCAT(CHAR(13), CHAR(10), ' ' <details><summary>Click to expand</summary>' ' , CHAR(13), CHAR(10)));' +
@@ -757,7 +759,7 @@ BEGIN
757759 /* **********************
758760 Generate markdown for synonyms
759761 ************************/
760- SET @sql = @sql + N'
762+ SET @Sql = @Sql + N'
761763 INSERT INTO #markdown (value)
762764 VALUES (CONCAT(CHAR(13), CHAR(10), ' ' ## Synonyms' ' ))
763765 ,(CONCAT(CHAR(13), CHAR(10), ' ' <details><summary>Click to expand</summary>' ' ));' +
@@ -833,13 +835,13 @@ BEGIN
833835 ,(CONCAT(' ' at ' ' , SYSDATETIMEOFFSET(), ' ' .*' ' ));'
834836
835837 -- Return all data
836- SET @sql = @sql + N'
838+ SET @Sql = @Sql + N'
837839 SELECT [value]
838840 FROM #markdown
839841 ORDER BY [ID] ASC;'
840842
841843 SET @ParmDefinition = N' @ExtendedPropertyName SYSNAME, @DatabaseName SYSNAME' ;
842- EXEC sp_executesql @sql
844+ EXEC sp_executesql @Sql
843845 ,@ParmDefinition
844846 ,@ExtendedPropertyName
845847 ,@DatabaseName;
0 commit comments