2

读完《SQL Server 中的char、nchar、varchar、nvarchar 有什么区别?》后,我有个问题。

我正在使用 MS SQL Server 2008 R2

DECLARE @T TABLE
(
C1 VARCHAR(20)  COLLATE Chinese_Traditional_Stroke_Order_100_CS_AS_KS_WS,
C2 NVARCHAR(20) COLLATE Chinese_Traditional_Stroke_Order_100_CS_AS_KS_WS
)

INSERT INTO @T VALUES (N'中华人民共和国',N'中华人民共和国')

SELECT LEN(C1)        AS [LEN(C1)],
       DATALENGTH(C1) AS [DATALENGTH(C1)],
       LEN(C2)        AS [LEN(C2)],
       DATALENGTH(C2) AS [DATALENGTH(C2)]
FROM   @T  

退货

LEN(C1)     DATALENGTH(C1) LEN(C2)     DATALENGTH(C2)
----------- -------------- ----------- --------------
7           12             7           14

为什么第二个 DATALENGTH(C1) 是 12?

4

1 回答 1

2
于 2015-06-05T12:06:53.993 回答