Zdá se, že problém souvisí s příkazem SET. Myslím, že výraz nemůže být větší než 4000 bajtů. Není třeba provádět žádné změny nastavení, pokud se snažíte pouze přiřadit dynamicky generovaný příkaz, který má více než 4 000 znaků. Co musíte udělat, je rozdělit úkol. Pokud je váš příkaz dlouhý 6 000 znaků, najděte logický bod přerušení a potom zřetězte druhou polovinu se stejnou proměnnou. Například:
SET @Query = 'SELECT ....' [Up To 4,000 characters, then rest of statement as below]
SET @Query = @Query + [rest of statement]
Nyní spusťte dotaz jako obvykle, tj. EXEC ( @Query )