Este script abaixo foi utilizado para separar telefones de um mesmo campo em uma cadastro, transformando em linhas.
Exemplo:
ID_USUARIO TELEFONE
123 12 81359245, 12 12365478
Após rodar o Script
ID_USUARIO TELEFONE
123 12 81359245
123 12 12365478
Mandei criar a tabela temporária #TELEFONE_USUARIO, para relacionar com outros dados posteriormente.
SELECTDISTINCT A.ID_USUARIO,Split.a.value('.', 'VARCHAR(100)') AS TELEFONEINTO #TELEFONE_USUARIOFROM(SELECTID_USUARIO,CAST ('<M>' + REPLACE(TELEFONES, ',', '</M><M>') + '</M>' AS XML) AS StringFROMTELEFONE) AS ACROSS APPLY String.nodes ('/M') AS Split(a)
Créditos: http://goo.gl/owBJh6