Masalah tampaknya terkait dengan pernyataan SET. Saya pikir ukuran ekspresi tidak boleh lebih dari 4.000 byte. Tidak perlu membuat perubahan apa pun pada pengaturan apa pun jika semua yang Anda coba lakukan adalah menetapkan pernyataan yang dibuat secara dinamis yang lebih dari 4.000 karakter. Yang perlu Anda lakukan adalah membagi tugas Anda. Jika pernyataan Anda panjangnya 6.000 karakter, temukan titik istirahat logis dan kemudian gabungkan paruh kedua ke variabel yang sama. Misalnya:
SET @Query = 'SELECT ....' [Up To 4,000 characters, then rest of statement as below]
SET @Query = @Query + [rest of statement]
Sekarang jalankan kueri Anda seperti biasa yaitu EXEC ( @Query )