SQL Server排序规则,Management Studio结果与asp.net结果不同

时间:2009-07-22 14:25:42

标签: asp.net sql-server collation

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

现在查询:

选择1存在(选择1 FROM USER_TABLE WITH(NOLOCK)WHERE user_name ='sueßemaus')

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

有一个名为“süßemaus”的记录与整理相比,正确的结果是[没有],但为什么asp.net会忽略整理?

2 个答案:

答案 0 :(得分:0)

试 选择1 where exists(选择1 FROM USER_TABLE WITH(NOLOCK)WHERE user_name ='sueßemaus'collat​​eSQL_Latin1_General_CP1_CI_AS)

答案 1 :(得分:0)

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

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

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

我用äüö等处理许多名字并整理“SQL_Latin1_General_CP1_CI_AS”

现在,如果你强制对一个德国人进行整理,它可能会有效,但我从未尝试过,而且我不知道它是否能解决ü - >的交换问题。你或你 - > ü。我怀疑它不会因为案件不敏感和自动翻译Uetliberg将成为一个非常错误的ülitberg。 (苏黎世以西800米的山丘)