Я пытался использовать текст или ntext как тип переменной, но они запрещены.
Существует ли способ обойти это?
Для всего, что не MSSQL 2005 или MSSQL 2008:
Вы можете получить 8000 в varchar(8000)
Другой вариант - использовать временную таблицу и заполнить ее необходимой информацией. Для поддержания порядка используйте автоиндекс.
TEXT и NTEXT будут устаревшими в будущей версии SQL Server.
Вместо них следует использовать VARCHAR(MAX) и NVARCHAR(MAX), которые снимают прежние ограничения на размер 8000 и 4000 соответственно, доводя его до 2^31-1 байт.