[SQL]INF: SQL Server における DBCS データの切り詰め

この記事は、以前は次の ID で公開されていました: JP155723
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
概要
ダブルバイト文字セット (DBCS) データが char もしくは varchar カラムに入る長さよりも長い場合、データはカラムに収まるよう切り詰められます。SQL Server が DBCS のコードページを使用しており、この切り詰めがダブルバイト文字のちょうど真中で発生すると、該当のダブルバイト文字全体が削除されます。

下のスクリプトは、この切り詰めを説明するものです。ここでは、DBCS コードページを使用していると仮定します。
     CREATE TABLE test     (       col1 char (10),       col2  varchar (10)     )     GO     /* D はダブルバイト文字を意味します             */     /* L はダブルバイト文字の先頭バイトを意味します */     /* T はダブルバイト文字の後続バイトを意味します */     /* S はシングルバイト文字を意味します           */     /* s は空白 (ASCII 20) を意味します             */     INSERT test VALUES ("SDDDDD", "SDDDDD")     GO     SELECT * FROM test     GO
  col1       col2  ---------- ----------  SLTLTLTLTs SLTLTLTLT
切り詰められた文字列は最大長よりも短いので、null 値を許可しない char カラムと char 変数には、後続に空白が埋められます。一方で、varchar カラムには後続の空白は格納されません。
関連情報
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 155723 (最終更新日 2000-05-31) をもとに作成したものです。

DBCS
プロパティ

文書番号:155723 - 最終更新日: 01/16/2015 18:25:15 - リビジョン: 5.1

  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 6.5 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • kbnosurvey kbarchive char dbcs kbinfo kbprg ssrvprog truncate KB155723
フィードバック