Нет.
Тип данных этого выражения nvarchar(6)
, поэтому вам нужно преобразовать выражение в nvarchar(50)
, чтобы избежать жалоб на несоответствие длин.
DECLARE @v SQL_VARIANT =RIGHT('000000'+CONVERT([NVARCHAR](50),123,0),(6))
SELECT CAST(SQL_VARIANT_PROPERTY(@v, 'BaseType') AS VARCHAR(30)) AS BaseType,
CAST(SQL_VARIANT_PROPERTY(@v, 'MaxLength') AS INT) AS MaxLength
Возвращает
BaseType MaxLength
------------------------------ -----------
nvarchar 12
Это размер в байтах, поэтому разделите 12 на 2, чтобы получить количество символов Юникода.