I am not agree with the statement that you have mentioned.
"
though i will break query but at the end when i will put it into EXEC('only supports 8000 chars only').
I can execute the query which having chars more than 8000
declare @cmd varchar(max)
set @cmd = 'print /*' + replicate ('-', 7990);
set @cmd = @cmd + replicate ('-', 7990) + '*/ getdate()';
print datalength (@cmd)
exec (@cmd)
print datalength (@cmd)
Read the complete thread in MSDN forum !
Executing Dynamic SQL larger than 8000 characters
[
^]
Hope this helps you. :) :thumbsup: