当我的SQL Server数据库设置为Latin1_General_100_CI_AI时,大小写和排序规则的问题

时间:2011-01-25 14:43:55

标签: sql-server collation

我的SQL Server 2008数据库设置为Latin1_General_100_CI_AI排序规则,但是当我使用Management Studio查询数据库时,它仍然是重音敏感的。我错过了什么?

此外,在nvarchar上连接两个表时,我收到以下消息。这些表格也是相同的排序规则。

无法在等于操作的情况下解决“Latin1_General_100_CI_AI”与“Latin1_General_CI_AS”之间的排序规则冲突。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:5)

尝试将其中一个字段转换为其他字段的排序规则:

SELECT  *
FROM    as_table
JOIN    ai_table
ON      ai_field = as_field COLLATE Latin1_General_100_CI_AI

SELECT  *
FROM    ai_table
JOIN    as_table
ON      as_field = ai_field COLLATE Latin1_General_100_CI_AS

请注意,转换字段会使谓词无法与此字段上的索引进行比较。

答案 1 :(得分:1)

一旦您已经在数据库中创建了对象,只需更改排序规则就不会更改现有对象。您可以通过右键单击表并将其编写出来来看到这一点 - 他们会有很多关于varchar字段排序规则的注释。如果您希望更改对象,则需要重新创建它们。