Microsoftは、次のように発表しました。「ntext
、、、text
およびimage
データ型は、MicrosoftSQLServerの将来のバージョンで削除される予定です。」そして、代わりにnvarchar(max)
、、を使用することをお勧めします。varchar(max)
varbinary(max)
私の質問:8kbより大きいデータ型があります。このデータをSQLに挿入するにはどうすればよいですか?どのデータ型が私の問題を解決しますか?
Microsoftは、次のように発表しました。「ntext
、、、text
およびimage
データ型は、MicrosoftSQLServerの将来のバージョンで削除される予定です。」そして、代わりにnvarchar(max)
、、を使用することをお勧めします。varchar(max)
varbinary(max)
私の質問:8kbより大きいデータ型があります。このデータをSQLに挿入するにはどうすればよいですか?どのデータ型が私の問題を解決しますか?
nvarchar(max)、varchar(max)、およびvarbinary(max)のいずれか。
nvarchar(max)およびvarchar(max)は、テキスト情報用です(nvarcharはUnicodeをサポートしています)。
varbinary(max)は、バイナリデータ(画像、ファイルなど)用です。
すべての場合において、MAX
indicates that the maximum storage size is 2^31-1 bytes.
テキストデータの場合は、varchar(max)
またはnvarchar(max)
(ユニコードをサポート)のいずれかです。varchar(max)の最大ストレージサイズは2 ^ 31-1バイトです(参照)。
バイナリデータの場合は、を使用しますvarbinary(max)
。
nvarchar(max)
、varchar(max)
またはのいずれかを使用しますvarbinary(max)
8KBの行制限を超えるデータを挿入すると、データはROW_OVERFLOW_DATAアロケーションユニットの別のページに行外に移動されます。
次のMSDNの記事では、このプロセスについてさらに詳しく説明しています。
varchar(max)の最大値は2GBだと思います。
「varchar」ビットと混同しないでください。
varchar(max)
これは基本的に、varchar(50)or
varchar(1000)or
varchar(8000)`と同じようにほとんどの関数を使用できることを意味します。
したがって、持つことも、最大にすることもできますがvarchar(50)
、varchar(1000)
よりvarchar(8000)
長い文字列を格納する場合は、を使用しますvarchar(max)
。
「max」または「50」/「1000」/「8000」ビットは、単に内部ストレージ+最大文字列長を決定します。
もちろん、インデックス作成など、いくつかの小さな違いがあります。