U hoeft de tekst niet in delen te splitsen. Je moet er wel voor zorgen dat er geen truncatie plaatsvindt terwijl je strings aaneenschakelen :
Zorg er dus voor dat de eerste aaneenschakeling werkt met een groot waardetype (en dus een groot waardetype als resultaat oplevert) en dat elke volgende aaneenschakeling van afkapping moet worden bewaard:
set @template=CONVERT(nvarchar(max),'if NOT EXISTS(select * from ' ) + @DestinationDB + ...
(Op deze manier hoeft u niet overal conversies in te voegen )
Dit genereert een fout:
declare @t nvarchar(max)
set @t = 'select LEN(''' + REPLICATE('A',3000) + REPLICATE('B',3000) + REPLICATE('C',3000) + ''')'
exec sp_executesql @t
En dit levert het resultaat 9000 op:
declare @t nvarchar(max)
set @t = CONVERT(nvarchar(max),'select LEN(''') + REPLICATE('A',3000) + REPLICATE('B',3000) + REPLICATE('C',3000) + ''')'
exec sp_executesql @t