私が見る限り、完全に無意味な制限です。標準の FixedVar
を想定 形式 (行/ページ圧縮またはスパース列で使用される形式とは対照的に) であり、 varchar(1-8000)
について話していると仮定します 列
すべての varchar
データは、可変長セクション (行に収まらない場合はオフロー ページ) の行の最後に格納されます。そのセクションで消費されるスペースの量 (および最終的に行から外れるかどうか) は、列の宣言ではなく、実際のデータの長さに完全に依存します。
SQL Server は、メモリを割り当てるときに列宣言で宣言された長さを使用します (例:sort
の場合)。 オペレーション)。そのインスタンスで行う仮定は、 varchar
列は 埋められます宣言されたサイズの平均 50%
そのため、サイズを選択する際にはこれを確認することをお勧めします。