Используйте один из типов max , но помните, что любые промежуточные выражения будут varchar(8000)
(или nvarchar(4000)
), если они не включают тип (n)varchar(max)
DECLARE @maxtype varchar(max)
--on the right, never above 8000
SET @maxtype = REPLICATE('a', 6000) + REPLICATE('b', 6000)
SELECT LEN(@maxtype) --8000
--here, there is a max on the right
SET @maxtype = REPLICATE(CAST('a' AS varchar(max)), 6000) + REPLICATE('b', 6000)
SELECT LEN(@maxtype) --12000