14

SQL Server では、varchar 列の長さを 32 または 128 に定義すると違いがありますか?

4

3 に答える 3

17

varcharは可変文字フィールドです。これは、テキストデータを特定の長さまで保持できることを意味します。varchar(32) は 32 文字しか保持できませんが、varchar(128) は 128 文字を保持できます。「12345」を varchar(3) フィールドに入力しようとすると、これが保存されるデータです。

「123」

「45」は「切り捨て」(失われます) になります。

これらは、特定のフィールドが最大で特定の長さしかない (またはそうあるべきである) ことがわかっている場合に非常に役立ちます。例: 郵便番号または州の略称。実際、それらは通常、ほとんどすべての種類のテキスト データ (名前/住所/その他など) に使用されます。そのコラム。

ただし、フィールドがサポートする最大文字数のみをユーザーが入力できるように、それらを使用する場合にも注意が必要です。そうしないと、ユーザーの入力を切り捨てるときに混乱を招く可能性があります。

于 2008-10-07T06:48:06.193 に答える
4

バックエンドはその列に挿入したデータ量のみを保存するため、顕著な違いはありません。char 列の場合のように、フィールドのフルサイズにパディングされません。

編集: 詳細については、このリンクが役立つはずです。

于 2008-10-07T06:08:33.340 に答える
4

そうすべきではありません。対応できる最大長を定義するだけで、実際に使用される長さは挿入されるデータによって異なります。

于 2008-10-07T06:12:18.323 に答える