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) を使用して効率的なインプレース更新をサポートします 構文。
固定長型と可変長型の違いは、テーブルで行圧縮を行うとなくなります。行圧縮を有効にすると、固定長型と可変長型は同じ形式で格納され、末尾のスペースはディスクに格納されません。行圧縮の実装 .ページ圧縮は行圧縮を意味することに注意してください。