Управлять переменной VARCHAR длиннее 8000 символов - PullRequest
3 голосов
/ 30 марта 2009

У меня есть хранимая процедура в базе данных SQL Server 2005, которая создает тело сообщения электронной почты. Результат этой процедуры должен быть помещен в таблицу с полем TEXT для тела сообщения для последующей обработки.

Проблема, с которой я столкнулся, заключается в том, что в некоторых сценариях размер создаваемого электронного письма превышает 8000 символов. Поэтому я не могу построить тело сообщения в переменной TEXT, поскольку SQL Server не допускает использование переменных типа TEXT. Я могу накапливать части электронной почты в табличную переменную, но это не решает проблему, потому что я не могу добавить эти части электронной почты вместе в одну переменную для вставки в таблицу результатов.

Есть ли способ (1) манипулировать объектами, размер которых превышает 8000 в памяти, или есть (2) способ, которым my может накапливать значения из поля (временной) таблицы в текстовое поле?

1 Ответ

5 голосов
/ 30 марта 2009

Это можно сделать с помощью типов данных NVARCHAR (макс.) Или VARCHAR (макс.) В SQL 2005.

Типы данных с большими значениями по своему поведению аналогичны своим меньшим аналогам, varchar, nvarchar и varbinary. Это сходство позволяет SQL Server более эффективно хранить и извлекать большие символы, Unicode и двоичные данные.

С типами данных большого значения вы можете работать с SQL Server так, как это было невозможно при использовании типов данных text, ntext и image из более ранних версий SQL Server. Вы можете определить переменные, которые могут хранить большие объемы данных, до 2 ^ 31 байта символьных, двоичных данных и данных Unicode.

http://msdn.microsoft.com/en-us/library/ms178158.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...