0

我正在使用带有用户名列和排序规则 SQL_Latin1_General_CP1_CI_AS 的表

现在查询:

select 1 where exists(select 1 FROM USER_TABLE WITH(NOLOCK) WHERE user_name='sueßemaus')

在 asp.net 结果中:1 在 SQL Management Studio 结果中:[无]

与排序规则相比,有一条名为“süßemaus”的记录正确的结果是 [nothing] 但为什么 asp.net 会忽略排序规则?

4

2 回答 2

0

尝试 select 1 where exists(select 1 FROM USER_TABLE WITH(NOLOCK) WHERE user_name='sueßemaus' collat​​e SQL_Latin1_General_CP1_CI_AS)

于 2009-07-22T14:28:47.857 回答
0

您不需要外部查询。这会做。

select 1 FROM USER_TABLE WITH(NOLOCK) WHERE user_name='sueßemaus'

现在,您提到了“süßemaus”,但查询是“sueßemaus”。当您的键盘上没有变音符号并且您作为人类阅读它时,它可能是相同的,但这是一个完全不同的查询,因为 ü <> ue

我使用 ä ü ö 等和排序规则“SQL_Latin1_General_CP1_CI_AS”处理许多名称

现在,如果你强制归类为德语,它可能会起作用,但我从未尝试过,我不知道它是否能解决 ü -> ue 或 ue -> ü 的交换。我怀疑它不会因为不区分大小写和自动翻译 Uetliberg 将成为一个非常错误的 ülitberg。(苏黎世以西 800 多米的山丘)

于 2009-08-23T17:43:46.537 回答