text
と ntext
非推奨なので、しばらく省略します。残っているものには、3 つの次元があります:
- Unicode (UCS-2) と非 Unicode:
N
名前の前は Unicode を示します - 固定長と可変長:
var
変数を示します。それ以外の場合は固定です - 行内対 BLOB:
(max)
長さは BLOB を示し、それ以外は行内の値です
したがって、これを使用すると、任意の型の意味を読み取ることができます:
CHAR(10)
:サイズ 10 の行内固定長非 Unicode ですNVARCHAR(256)
:最大 256 のサイズの行内可変長 Unicode ですVARCHAR(MAX)
:Unicode 以外の BLOB 可変長
非推奨の型 text
と ntext
新しい型 varchar(max)
に対応 および nvarchar(max)
詳細に行くと、in-row
の意味 対 BLOB
エンジンの可能性に応じて、短い長さでぼやけます ストレージを最適化し、BLOB を行内にプルするか、行内の値を「小さな BLOB」アロケーション ユニットにプッシュしますが、これは単なる実装の詳細です。 テーブルとインデックスの編成
を参照してください .
プログラミングの観点から、すべてのタイプ:CHAR
, VARCHAR
、 NCHAR
、 NVARCHAR
, VARCHAR(MAX)
および NVARCHAR(MAX)
、統一文字列 API をサポート:文字列関数
.古い非推奨のタイプ TEXT
および NTEXT
しないしない この API をサポートしている場合は、操作する別の廃止された TEXT API があります。非推奨のタイプは使用しないでください。
BLOB 型は、UPDATE table SET column.WRITE(@value, @offset)
を使用して効率的なインプレース更新をサポートします 構文。
固定長型と可変長型の違いは、テーブルで行圧縮を行うとなくなります。行圧縮を有効にすると、固定長型と可変長型は同じ形式で格納され、末尾のスペースはディスクに格納されません。行圧縮の実装 .ページ圧縮は行圧縮を意味することに注意してください。