INF: SQL Server 截断的 DBCS 字符串

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

155723
本文已归档。它按“原样”提供,并且不再更新。
概要
太长,无法放入 char 或 varchar 列组 (DBCS) 的双字节字符数据是否在数据被截断以适应列中。如果 Microsoft SQL Server 使用 DBCS 代码页,并且此截断发生双字节字符集的中间部分的右整个双字节字符将被丢弃。

以下脚本演示此截断。假设应用下面的代码页是 DBCS 代码页。
CREATE TABLE test(  col1 char (10),  col1 varchar (10))GO/* Let D represent a double character. */ /* Let L represent the leading byte.   */ /* Let T represent the trailing byte.  */ /* Let S represent a single character. */ /* Let s represent space (ASCII 20).   */ INSERT test VALUES ("SDDDDD", "SDDDDD")GOSELECT * FROM testGO				

col1       col2---------- ----------SLTLTLTLTs SLTLTLTLT				
因为截断的字符串小于最大长度是不允许空值不允许的字符列和 char 变量是用尾随空白时将 varchar 填充列不会存储尾随空格。
DBCS

警告: 本文已自动翻译

属性

文章 ID:155723 - 上次审阅时间:01/16/2015 18:25:19 - 修订版本: 3.3

  • Microsoft SQL Server 7.0 标准版
  • Microsoft SQL Server 6.5 标准版
  • Microsoft SQL Server 2000 标准版
  • kbnosurvey kbarchive kbmt kbinfo kbprogramming KB155723 KbMtzh
反馈