@@ -210,27 +210,31 @@ BEGIN
210210 ,CASE
211211 WHEN TYPE_NAME([user_type_id]) IN (N' ' decimal' ' ,N' ' numeric' ' )
212212 THEN CONCAT(N' ' (' ' ,CAST(precision AS varchar(5)), N' ' ,' ' ,CAST(scale AS varchar(5)), N' ' )' ' )
213- WHEN TYPE_NAME([user_type_id]) IN (' ' varchar' ' , ' ' char' ' )
214- THEN QUOTENAME(CAST([max_length] AS VARCHAR(10)), ' ' (' ' )
213+ WHEN TYPE_NAME([user_type_id]) IN (' ' varchar' ' , ' ' char' ' , ' ' varbinary' ' )
214+ THEN CASE
215+ WHEN [max_length] = -1
216+ THEN N' ' (MAX)' '
217+ ELSE QUOTENAME(CAST([max_length] AS VARCHAR(10)), ' ' (' ' )
218+ END
215219 WHEN TYPE_NAME([user_type_id]) IN (N' ' time' ' ,N' ' datetime2' ' ,N' ' datetimeoffset' ' )
216220 THEN QUOTENAME(CAST(scale AS varchar(5)), ' ' (' ' )
217221 WHEN TYPE_NAME([user_type_id]) in (N' ' float' ' )
218222 THEN CASE
219- WHEN [c].precision = 53
220- THEN N' ' ' '
221- ELSE CONCAT(N' ' (' ' ,CAST([c].precision AS varchar(5)),N' ' )' ' )
222- END
223+ WHEN [c].precision = 53
224+ THEN N' ' ' '
225+ ELSE CONCAT(N' ' (' ' ,CAST([c].precision AS varchar(5)),N' ' )' ' )
226+ END
223227 WHEN TYPE_NAME([c].user_type_id) IN (N' ' int' ' ,N' ' bigint' ' ,N' ' smallint' ' ,N' ' tinyint' ' ,N' ' money' ' ,N' ' smallmoney' ' ,
224228 N' ' real' ' ,N' ' datetime' ' ,N' ' smalldatetime' ' ,N' ' bit' ' ,N' ' image' ' ,N' ' text' ' ,N' ' uniqueidentifier' ' ,
225229 N' ' date' ' ,N' ' ntext' ' ,N' ' sql_variant' ' ,N' ' hierarchyid' ' ,' ' geography' ' ,N' ' timestamp' ' ,N' ' xml' ' )
226230 THEN N' ' ' '
227- ELSE CASE
228- WHEN [max_length] = -1
229- THEN N' ' (MAX)' '
230- WHEN TYPE_NAME([user_type_id]) IN (N' ' nvarchar' ' ,N' ' nchar' ' )
231- THEN QUOTENAME(CAST([max_length]/2 AS VARCHAR(10)), ' ' (' ' )
232- ELSE QUOTENAME(CAST([max_length] AS VARCHAR(10)), ' ' (' ' )
231+ WHEN TYPE_NAME([user_type_id]) IN (N' ' nvarchar' ' ,N' ' nchar' ' )
232+ THEN CASE
233+ WHEN [max_length] = -1
234+ THEN N' ' (MAX)' '
235+ ELSE QUOTENAME(CAST([max_length]/2 AS VARCHAR(10)), ' ' (' ' )
233236 END
237+ ELSE QUOTENAME(CAST([max_length] AS VARCHAR(10)), ' ' (' ' )
234238 END)
235239 ,' ' | ' '
236240 ,CASE [c].[is_nullable]
@@ -413,29 +417,33 @@ BEGIN
413417 ,' ' | ' '
414418 ,CONCAT(UPPER(TYPE_NAME([user_type_id]))
415419 ,CASE
416- WHEN TYPE_NAME([user_type_id]) IN (N' ' decimal' ' ,N' ' numeric' ' )
417- THEN CONCAT(N' ' (' ' ,CAST(precision AS varchar(5)), N' ' ,' ' ,CAST(scale AS varchar(5)), N' ' )' ' )
418- WHEN TYPE_NAME([user_type_id]) IN (' ' varchar' ' , ' ' char' ' )
419- THEN QUOTENAME(CAST([max_length] AS VARCHAR(10)), ' ' (' ' )
420- WHEN TYPE_NAME([user_type_id]) IN (N' ' time' ' ,N' ' datetime2' ' ,N' ' datetimeoffset' ' )
421- THEN QUOTENAME(CAST(scale AS varchar(5)), ' ' (' ' )
422- WHEN TYPE_NAME([user_type_id]) in (N' ' float' ' )
423- THEN CASE
420+ WHEN TYPE_NAME([user_type_id]) IN (N' ' decimal' ' ,N' ' numeric' ' )
421+ THEN CONCAT(N' ' (' ' ,CAST(precision AS varchar(5)), N' ' ,' ' ,CAST(scale AS varchar(5)), N' ' )' ' )
422+ WHEN TYPE_NAME([user_type_id]) IN (' ' varchar' ' , ' ' char' ' , ' ' varbinary' ' )
423+ THEN CASE
424+ WHEN [max_length] = -1
425+ THEN N' ' (MAX)' '
426+ ELSE QUOTENAME(CAST([max_length] AS VARCHAR(10)), ' ' (' ' )
427+ END
428+ WHEN TYPE_NAME([user_type_id]) IN (N' ' time' ' ,N' ' datetime2' ' ,N' ' datetimeoffset' ' )
429+ THEN QUOTENAME(CAST(scale AS varchar(5)), ' ' (' ' )
430+ WHEN TYPE_NAME([user_type_id]) in (N' ' float' ' )
431+ THEN CASE
424432 WHEN [c].precision = 53
425433 THEN N' ' ' '
426434 ELSE CONCAT(N' ' (' ' ,CAST([c].precision AS varchar(5)),N' ' )' ' )
427435 END
428- WHEN TYPE_NAME([c].user_type_id) IN (N' ' int' ' ,N' ' bigint' ' ,N' ' smallint' ' ,N' ' tinyint' ' ,N' ' money' ' ,N' ' smallmoney' ' ,
429- N' ' real' ' ,N' ' datetime' ' ,N' ' smalldatetime' ' ,N' ' bit' ' ,N' ' image' ' ,N' ' text' ' ,N' ' uniqueidentifier' ' ,
430- N' ' date' ' ,N' ' ntext' ' ,N' ' sql_variant' ' ,N' ' hierarchyid' ' ,' ' geography' ' ,N' ' timestamp' ' ,N' ' xml' ' )
431- THEN N' ' ' '
432- ELSE CASE
436+ WHEN TYPE_NAME([c].user_type_id) IN (N' ' int' ' ,N' ' bigint' ' ,N' ' smallint' ' ,N' ' tinyint' ' ,N' ' money' ' ,N' ' smallmoney' ' ,
437+ N' ' real' ' ,N' ' datetime' ' ,N' ' smalldatetime' ' ,N' ' bit' ' ,N' ' image' ' ,N' ' text' ' ,N' ' uniqueidentifier' ' ,
438+ N' ' date' ' ,N' ' ntext' ' ,N' ' sql_variant' ' ,N' ' hierarchyid' ' ,' ' geography' ' ,N' ' timestamp' ' ,N' ' xml' ' )
439+ THEN N' ' ' '
440+ WHEN TYPE_NAME([user_type_id]) IN (N' ' nvarchar' ' ,N' ' nchar' ' )
441+ THEN CASE
433442 WHEN [max_length] = -1
434- THEN N' ' (MAX)' '
435- WHEN TYPE_NAME([user_type_id]) IN (N' ' nvarchar' ' ,N' ' nchar' ' )
436- THEN QUOTENAME(CAST([max_length]/2 AS VARCHAR(10)), ' ' (' ' )
437- ELSE QUOTENAME(CAST([max_length] AS VARCHAR(10)), ' ' (' ' )
438- END
443+ THEN N' ' (MAX)' '
444+ ELSE QUOTENAME(CAST([max_length]/2 AS VARCHAR(10)), ' ' (' ' )
445+ END
446+ ELSE QUOTENAME(CAST([max_length] AS VARCHAR(10)), ' ' (' ' )
439447 END)
440448 ,' ' | ' '
441449 ,CASE [c].[is_nullable]
@@ -539,28 +547,31 @@ BEGIN
539547 ,CASE
540548 WHEN TYPE_NAME([user_type_id]) IN (N' ' decimal' ' ,N' ' numeric' ' )
541549 THEN CONCAT(N' ' (' ' ,CAST(precision AS varchar(5)), N' ' ,' ' ,CAST(scale AS varchar(5)), N' ' )' ' )
542- WHEN TYPE_NAME([user_type_id]) IN (' ' varchar' ' , ' ' char' ' )
543- THEN QUOTENAME(CAST([max_length] AS VARCHAR(10)), ' ' (' ' )
550+ WHEN TYPE_NAME([user_type_id]) IN (' ' varchar' ' , ' ' char' ' , ' ' varbinary' ' )
551+ THEN CASE
552+ WHEN [max_length] = -1
553+ THEN N' ' (MAX)' '
554+ ELSE QUOTENAME(CAST([max_length] AS VARCHAR(10)), ' ' (' ' )
555+ END
544556 WHEN TYPE_NAME([user_type_id]) IN (N' ' time' ' ,N' ' datetime2' ' ,N' ' datetimeoffset' ' )
545557 THEN QUOTENAME(CAST(scale AS varchar(5)), ' ' (' ' )
546558 WHEN TYPE_NAME([user_type_id]) in (N' ' float' ' )
547559 THEN CASE
548- WHEN precision = 53
549- THEN N' ' ' '
550- ELSE QUOTENAME(CAST(precision AS varchar(5)),' ' (' ' ) END
551- WHEN TYPE_NAME([user_type_id]) IN (N' ' int' ' ,N' ' bigint' ' ,N' ' smallint' ' ,N' ' tinyint' ' ,N' ' money' ' ,N' ' smallmoney' ' ,
560+ WHEN [param].precision = 53
561+ THEN N' ' ' '
562+ ELSE CONCAT(N' ' (' ' ,CAST([param].precision AS varchar(5)),N' ' )' ' )
563+ END
564+ WHEN TYPE_NAME([param].user_type_id) IN (N' ' int' ' ,N' ' bigint' ' ,N' ' smallint' ' ,N' ' tinyint' ' ,N' ' money' ' ,N' ' smallmoney' ' ,
552565 N' ' real' ' ,N' ' datetime' ' ,N' ' smalldatetime' ' ,N' ' bit' ' ,N' ' image' ' ,N' ' text' ' ,N' ' uniqueidentifier' ' ,
553- N' ' date' ' ,N' ' ntext' ' ,N' ' sql_variant' ' ,N' ' hierarchyid' ' ,' ' geography' ' ,N' ' timestamp' ' ,N' ' xml' ' )
566+ N' ' date' ' ,N' ' ntext' ' ,N' ' sql_variant' ' ,N' ' hierarchyid' ' ,' ' geography' ' ,N' ' timestamp' ' ,N' ' xml' ' ) OR [is_readonly] = 1
554567 THEN N' ' ' '
555- ELSE CASE
556- WHEN [is_readonly] = 1 --User defined table type
557- THEN N' ' ' '
558- WHEN [max_length] = -1
559- THEN N' ' (MAX)' '
560- WHEN TYPE_NAME([user_type_id]) IN (N' ' nvarchar' ' ,N' ' nchar' ' )
561- THEN QUOTENAME(CAST([max_length]/2 AS VARCHAR(10)), ' ' (' ' )
562- ELSE QUOTENAME(CAST([max_length] AS VARCHAR(10)), ' ' (' ' )
568+ WHEN TYPE_NAME([user_type_id]) IN (N' ' nvarchar' ' ,N' ' nchar' ' )
569+ THEN CASE
570+ WHEN [max_length] = -1
571+ THEN N' ' (MAX)' '
572+ ELSE QUOTENAME(CAST([max_length]/2 AS VARCHAR(10)), ' ' (' ' )
563573 END
574+ ELSE QUOTENAME(CAST([max_length] AS VARCHAR(10)), ' ' (' ' )
564575 END)
565576 ,' ' | ' '
566577 ,CASE [is_output]
@@ -662,31 +673,34 @@ BEGIN
662673 select CONCAT(' ' | ' ' , CASE WHEN LEN([param].[name]) = 0 THEN ' ' *Output*' ' ELSE [param].[name] END
663674 ,' ' | ' '
664675 ,CONCAT(UPPER(TYPE_NAME([user_type_id]))
665- ,CASE
676+ ,CASE
666677 WHEN TYPE_NAME([user_type_id]) IN (N' ' decimal' ' ,N' ' numeric' ' )
667678 THEN CONCAT(N' ' (' ' ,CAST(precision AS varchar(5)), N' ' ,' ' ,CAST(scale AS varchar(5)), N' ' )' ' )
668- WHEN TYPE_NAME([user_type_id]) IN (' ' varchar' ' , ' ' char' ' )
669- THEN QUOTENAME(CAST([max_length] AS VARCHAR(10)), ' ' (' ' )
679+ WHEN TYPE_NAME([user_type_id]) IN (' ' varchar' ' , ' ' char' ' , ' ' varbinary' ' )
680+ THEN CASE
681+ WHEN [max_length] = -1
682+ THEN N' ' (MAX)' '
683+ ELSE QUOTENAME(CAST([max_length] AS VARCHAR(10)), ' ' (' ' )
684+ END
670685 WHEN TYPE_NAME([user_type_id]) IN (N' ' time' ' ,N' ' datetime2' ' ,N' ' datetimeoffset' ' )
671686 THEN QUOTENAME(CAST(scale AS varchar(5)), ' ' (' ' )
672687 WHEN TYPE_NAME([user_type_id]) in (N' ' float' ' )
673688 THEN CASE
674- WHEN precision = 53
675- THEN N' ' ' '
676- ELSE QUOTENAME(CAST(precision AS varchar(5)),' ' (' ' ) END
677- WHEN TYPE_NAME([user_type_id]) IN (N' ' int' ' ,N' ' bigint' ' ,N' ' smallint' ' ,N' ' tinyint' ' ,N' ' money' ' ,N' ' smallmoney' ' ,
689+ WHEN [param].precision = 53
690+ THEN N' ' ' '
691+ ELSE CONCAT(N' ' (' ' ,CAST([param].precision AS varchar(5)),N' ' )' ' )
692+ END
693+ WHEN TYPE_NAME([param].user_type_id) IN (N' ' int' ' ,N' ' bigint' ' ,N' ' smallint' ' ,N' ' tinyint' ' ,N' ' money' ' ,N' ' smallmoney' ' ,
678694 N' ' real' ' ,N' ' datetime' ' ,N' ' smalldatetime' ' ,N' ' bit' ' ,N' ' image' ' ,N' ' text' ' ,N' ' uniqueidentifier' ' ,
679- N' ' date' ' ,N' ' ntext' ' ,N' ' sql_variant' ' ,N' ' hierarchyid' ' ,' ' geography' ' ,N' ' timestamp' ' ,N' ' xml' ' )
695+ N' ' date' ' ,N' ' ntext' ' ,N' ' sql_variant' ' ,N' ' hierarchyid' ' ,' ' geography' ' ,N' ' timestamp' ' ,N' ' xml' ' ) OR [is_readonly] = 1
680696 THEN N' ' ' '
681- ELSE CASE
682- WHEN [is_readonly] = 1 --User defined table type
683- THEN N' ' ' '
684- WHEN [max_length] = -1
685- THEN N' ' (MAX)' '
686- WHEN TYPE_NAME([user_type_id]) IN (N' ' nvarchar' ' ,N' ' nchar' ' )
687- THEN QUOTENAME(CAST([max_length]/2 AS VARCHAR(10)), ' ' (' ' )
688- ELSE QUOTENAME(CAST([max_length] AS VARCHAR(10)), ' ' (' ' )
697+ WHEN TYPE_NAME([user_type_id]) IN (N' ' nvarchar' ' ,N' ' nchar' ' )
698+ THEN CASE
699+ WHEN [max_length] = -1
700+ THEN N' ' (MAX)' '
701+ ELSE QUOTENAME(CAST([max_length]/2 AS VARCHAR(10)), ' ' (' ' )
689702 END
703+ ELSE QUOTENAME(CAST([max_length] AS VARCHAR(10)), ' ' (' ' )
690704 END)
691705 ,' ' | ' '
692706 ,CASE [is_output]
0 commit comments