2009-03-30 9 views
3

電子メールの本文を作成するSQL Server 2005データベースにストアドプロシージャがあります。この手順の結果は、後で処理するためにメッセージ本文のTEXTフィールドを持つテーブルに配置する必要があります。VARCHAR変数を8000文字より大きく操作します。

私が遭遇した問題は、いくつかのシナリオでは、生成される電子メールが8000文字よりも大きいことです。したがって、SQL ServerではTEXT型の変数は使用できないため、TEXT変数にメッセージ本文を作成することはできません。私は電子メールの部分をテーブル変数に蓄積することができますが、結果テーブルに挿入するためにこれらの電子メール部分を1つの変数に追加することができないため、問題を解決できません。

(1)メモリに8000を超えるエンティティを操作する方法はありますか?(2)テンポラリテーブルのフィールドに値を累積してテキストフィールドに入れる方法はありますか?

答えて

5

あなたは、2005年

大きな値のデータ型は、その小さなカウンター、varchar型と行動が似ているSQLでNVARCHAR(MAX)またはVARCHAR(max)データタイプを使用してこれを達成することができます、nvarcharおよびvarbinaryです。この類似性により、SQL Serverは、大きな文字、Unicode、およびバイナリデータをより効率的に格納および取得できます。

大きな値のデータ型では、以前のバージョンのSQL Serverのtext、ntext、およびimageデータ型を使用してSQL Serverを操作することはできません。大量のデータ、最大2^31バイトの文字、バイナリ、およびUnicodeデータを格納できる変数を定義できます。

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

+0

私はアイテムのメモリ内を操作するためのものの組み合わせをしなければなりませんでした。 SQLSERVERでは、TEXT/VARCHAR(MAX)変数を作成することはできません。ただし、TEXTフィールドを持つテーブル変数は許可されます。 1つのフィールド/行で1つのテーブル変数を作成し、それを変数として使用する必要がありました。 – Joel

関連する問題