SQL查询结果中的错误语言环境

时间:2010-02-06 08:56:24

标签: sql-server sql-server-2005

我将SQL Server 2005数据库设置为locale Turkish_CI_AS。 SQL Server的PC的区域设置设置为土耳其语。土耳其小数分隔符是“,”,千位分隔符是“。”。有一个数据类型为decimal(14,3)的字段,它有一个值为“400,123”的记录(即400个)。当我在SQL Manager中使用Open Table时,结果网格中的值是正确的。但是当我在SQL查询窗口中查询表时,结果值为“400.123”,这是错误的。我在Linq查询结果中也得到了错误的结果。我该怎么做才能得到正确的值?

3 个答案:

答案 0 :(得分:0)

尝试将表列更改为specife collat​​ion_name 像Alter专栏myNogoodColation Collat​​e Turkish_BIN

在这里寻求帮助:ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.en/tsqlref9/html/56483d24-add7-483d-9b96-c6fda460ddbc.htm

COLLATE {| database_default}  :: =      {Windows_collat​​ion_name} | {SQL_collat​​ion_name}

答案 1 :(得分:0)

您使用的登录名的默认语言是什么? 您可以通过选择sys.server_principals来检查它,或者如果您没有权限在该视图中查看登录,请询问DBA http://msdn.microsoft.com/en-us/library/ms188786.aspx

答案 2 :(得分:0)

我离开这个地方的唯一方法是将小数转换为字符串,将点替换为空(也就是空字符串),然后用逗号替换逗号。 如在

Replace(Replace(Cast(<value> as varchar(14)), '.', ''), ',', '.')

不优雅但有助于从Excel转换到我到目前为止遇到问题的SQL服务器。