在sql函数中不需要转换拉丁字母

时间:2011-02-09 08:21:14

标签: sql contains latin

我正在使用Ms-Sql DB,我有一个字段作为nvarchar类型保存在DB中。 我以下列方式使用linq to sql:

var names = NamesTable.where(n=>n.name.Contains("acções"));

此查询返回包含以下内容的名称:acçoes/ accoes或任何其他组合。 似乎sql不认识拉丁特殊字母与英文字母不同。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

在SqlServer中,您可以为每列设置"collation"。通常(我认为)它是“重音敏感”,但你的情况似乎是“重音不敏感”。看看它对于整理的说法,如果它以“AI”结束,那么它确实是Accent Insensitive。你需要一个“AS”代表“Accent Sensitive”。

此外,您可以拥有“CI”(“Case Insensitive”)或“CS”(“Case sensitive”)。