Problemet verkar vara associerat med SET-satsen. Jag tror att uttrycket inte kan vara större än 4 000 byte. Det finns ingen anledning att göra några ändringar i några inställningar om allt du försöker göra är att tilldela en dynamiskt genererad sats som är mer än 4 000 tecken. Det du behöver göra är att dela upp ditt uppdrag. Om ditt uttalande är 6 000 tecken långt, hitta en logisk brytpunkt och koppla sedan andra halvan till samma variabel. Till exempel:
SET @Query = 'SELECT ....' [Up To 4,000 characters, then rest of statement as below]
SET @Query = @Query + [rest of statement]
Kör nu din fråga som vanligt, dvs EXEC ( @Query )