Я знаю, что это старый пост, но подумал, что добавлю обновление.Сплиттеры на основе таблиц Tally и cteTally имеют серьезную проблему.Они используют составные разделители, и это убивает их скорость, когда элементы становятся шире, а строки становятся длиннее.
Я исправил эту проблему и написал статью о ней, которую можно найти по следующему URL.http://www.sqlservercentral.com/articles/Tally+Table/72993/
Новый метод открывает двери для всех методов While, Loop, Recursive CTE и XML для VARCHAR (8000).
Я также скажу вам, чтоПарень по имени «Питер» внес улучшения даже в этот код (в обсуждении к статье).Статья все еще интересна, и я буду обновлять вложения с улучшениями Питера на следующий день или два.Я не верю, что между моим главным улучшением и твиком, сделанным Питером, вы найдете более быстрое решение T-SQL-Only для разделения VARCHAR (8000).Я также решил проблему для этой породы сплиттеров для VARCHAR (MAX), и сейчас я также пишу для этого статью.