INF: SQL Server Truncation of a DBCS String (155723)
The information in this article applies to:
- Microsoft SQL Server 7.0
- Microsoft SQL Server 6.5
- Microsoft SQL Server 2000 (all editions)
This article was previously published under Q155723 SUMMARY
If dual byte character set (DBCS) data is too long to fit into a char or varchar column, the data is truncated to fit into the column. If Microsoft SQL Server uses a DBCS code page and this truncation happens right in the middle of a double-byte character, the whole double-byte character is discarded.
The following scripts demonstrate this truncation. It is assumed that the code page that applies here is a DBCS code page.
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")
GO
SELECT * FROM test
GO
col1 col2
---------- ----------
SLTLTLTLTs SLTLTLTLT
Because the truncated string is shorter than the maximum length, the char
column that does not allow a null value and the char variable is padded
with trailing blanks while the varchar column will not store trailing blanks.
Modification Type: | Minor | Last Reviewed: | 2/14/2005 |
---|
Keywords: | kbinfo kbprogramming KB155723 |
---|
|