When I try to use the replace function on a string that is longer than 4000 char I get
Msg 8152, Level 16, State 10, Line 19 String or binary data would be truncated.
I think I have all variables as nvarchar(max), and I have tried Google, and various calls to CONVERT to no avail.
What am I doing wrong?
DECLARE @a NVARCHAR(MAX)
DECLARE @b nvarchar(max)
select @b = REPLICATE('a', 4000)
/*select @b = @b + '123412341234'*/
SET @a = N'TEst: #abc# :'
SET @a = REPLACE(@a , CONVERT(NVARCHAR(max),N'#abc#'), @b)
PRINT 'this line does not fail'
SET @a = CONVERT(NVARCHAR(max), REPLACE(@a , @b, CONVERT(NVARCHAR(max),N'#abc#')))
PRINT '------------------'
select @b = REPLICATE('a', 4000)
select @b = @b + '123412341234'
SET @a = N'TEst: #abc# :'
SET @a = REPLACE(@a , CONVERT(NVARCHAR(max),N'#abc#'), @b)
PRINT 'this line fails'
SET @a = CONVERT(NVARCHAR(max), REPLACE(@a , @b, CONVERT(NVARCHAR(max),N'#abc#')))