接受的答案表明,它在比较中没有发挥作用N a=a
。这很容易解释,因为在两者之间的比较中,char
将被隐式转换为nchar
,因此比较中的两个字符串都是Unicode。
我只是想到了一个例子,在拉丁语排序中,宽度敏感性可能会发挥作用,但却发现它似乎也没有任何区别。。。
DECLARE @T TABLE (
a VARCHAR(2) COLLATE Latin1_General_100_CS_AS_WS,
b VARCHAR(2) COLLATE Latin1_General_100_CS_AS_WS )
INSERT INTO @T
VALUES (N Æ ,
N AE );
SELECT LEN(a) AS [LEN(a)],
LEN(b) AS [LEN(b)],
a,
b,
CASE
WHEN a = b THEN Y
ELSE N
END AS [a=b]
FROM @T
LEN(a) LEN(b) a b a=b
----------- ----------- ---- ---- ----
1 2 Æ AE Y
《MicrosoftSQLServer2008Internals》一书就是这么说的。
Width Sensitivity refers to East Asian
languages for which there exists both
half-width and full-width forms of
some characters.
只要列具有unicode数据类型,就绝对没有什么可以阻止您将这些字符存储在排序规则中,例如Latin1_General_100_CS_as_WS
,所以我猜WS
部分只适用于这种特定情况。