Quebrando uma string em N colunas sem saber o número máximo de colunas

Olá pessoal, hoje gostaria de compartilhar um script que fiz e achei bem legal. Eu tinha a seguinte situação, precisei subir um arquivo csv para o SQL para fazer uma comparação, ao fazer essa comparação optei por quebrar essas linhas em colunas realizando um pivot, até ai sem segredos, mas como em SQL nem tudo é fácil, eu não sabia a quantidade de colunas que precisava por no pivot :(, para resolver esse problema eu lembrei de uma dica da lenda do tuning o Fabiano Amorim, que explica como contar a quantidade de X caractere na string. Vou explicar abaixo. Antes vamos montar a tabela auxiliar e já vou postar o script aqui: use tempdb drop table if exists teste create table teste( line varchar(max) ) insert into teste values ('aa,asasas,asasa,asa,sasasasa,add,dddads,dsdsds,ddsdsd') ,('skiaojhsaijsa,asasa,sasasa,sasas,as,as,a,sa,sa,sa,sa,a,a,a,sa,') ,('a,b') declare @qtd_col int ,@col varchar(max) ,@sql_batch nvarchar(max) ,@delimited char(1) = ',' ,@na...