【发布时间】:2013-05-15 15:36:12
【问题描述】:
我正在使用西班牙语数据库,所以当我在寻找“aeiou”时,我也可以在这样的 where 子句中得到“áéíóú”或“AEIOU”或“ÁÉÍÓÚ”:
SELECT * FROM myTable WHERE stringData like '%perez%'
我正在消费:
* perez
* PEREZ
* Pérez
* PÉREZ
所以我将我的数据库更改为排序规则:Modern_Spanish_CI_AI
我只得到:
* perez
* PEREZ
但如果我这样做:
SELECT * FROM myTable WHERE stringData like '%perez%' COLLATE Modern_Spanish_CI_AI
我得到所有结果都OK,所以我的问题是,为什么如果我的数据库是 COLLATE Modern_Spanish_CI_AI 我必须为我的查询设置相同的排序规则???
我使用的是 SQL-Server 2008
【问题讨论】:
-
stringdata列可能与数据库有不同的排序规则 -
没有简单的方法,尤其是在有限制的情况下。在 Google 上搜索“SQL 服务器更改排序规则”。它会给你带来噩梦。
标签: sql-server sql-server-2008 collation sql-like