web-dev-qa-db-ja.com

NVARCHAR(MAX)の最大文字数はいくつですか。

SQL Server 2008でNVARCHAR(MAX)型の列を宣言したのですが、MAXを長さとする正確な最大文字数はいくつでしょうか。

165
Jerameel Resco

NVARCHAR(MAX)型の列の最大サイズは、2 GBの記憶領域です。

NVARCHARは1文字あたり2バイトを使用するので、それは約です。 10億文字.

Leo Tolstojの戦争と平和は、約600'000の単語を含む1'440ページの本です。ですから、それぞれのNVARCHAR(MAX)列に、戦争と平和の本全体の約166部を貼り付けることができます。

あなたのニーズに十分なスペースがありますか? :-)

332
marc_s

デフォルトでは、実際の長さが4000文字を超えない限り、nvarchar(MAX)値はnvarchar(4000)値とまったく同じように格納されます。その場合、行内データは、データが格納されている1つ以上の別々のページへのポインタに置き換えられます。

データが4000文字を超える可能性があると予想される場合は、nvarchar(MAX)を使用することをお勧めします。

出典: https://social.msdn.Microsoft.com/Forums/ja-JP/databasedesign/thread/d5e0c6e5-8e44-4ad5-9591-20dc0ac7a870/

49
Madushan

から MSDNドキュメント

nvarchar[(n |max)]

可変長Unicode文字列データ。 nはストリングの長さを定義し、1から4,000までの値にすることができます。 maxは、最大ストレージサイズが2 ^ 31-1バイト(2 GB)であることを示します。記憶サイズ(バイト単位)は、入力されたデータの実際の長さの2倍+ 2バイトです。

7
JiNish

私は実際にnvarchar(MAX)はおよそ1070000000文字を格納できると思います。