with cteSource ( Data ) as ( select cast('<v><i>' + replace(replace(@cMbRedemptions, ';', '</i></v><v><i>'), ',', '</i><i>') + '</i></v>' as xml) as Data ) insert into #tblRedemptions ( BenefitID, Quantity, Date_Time ) select v.value('i[1]', 'INT') as BenefitID, v.value('i[2]', 'INT') as Quantity, v.value('i[3]', 'datetime') as Date_Time from cteSource as s cross apply Data.nodes('v') as n ( v ) ;I can check other samples as I know we do use XML in a few cases, I just need to recall where.