Você está truncando os dados para 8.000 bytes antes de inseri-los. Para criar um valor com mais de 8000 caracteres, você deve usar o tipo de dados varchar(max), enquanto o tipo 'a' é apenas varchar.
create table test(name varchar(max))
insert into test
values(replicate(CAST('a' AS varchar(MAX)), 100000));
select len(name) from test;