具有德语区域设置的SQL服务器

时间:2009-08-04 18:33:09

标签: sql-server

我们有一个已经运行了几个月的数据库应用程序,然后它突然开始出错。

我注意到了一个日期时间浮动计算异常,它与值0,05进行了比较。我还注意到写入xml日志文件的日期格式为d.mm.yy。

显然,使用的十进制运算符是',',日期分隔符是'。'。

该应用程序最初是使用英国英语区域设置安装的。我检查了那些仍然是英国英语的区域设置。

我注意到在数据库连接字符串中,主机被命名为“servername \ instance,portNumber”,正如我所期望的那样,正常工作安装的“servername \ instance:portNumber”。

获取区域设置的任何想法?此外,它可能是他们用来针对数据库或运行数据库的用户运行应用程序的用户吗?

JD。

1 个答案:

答案 0 :(得分:3)

控制面板..区域设置。

这听起来像是客户端应用程序问题,而不是SQL Server。如果它们安装在同一个框中,则SQL Server不会从OS区域设置中获取设置。

应用程序的用户可能具有德语区域设置,并且某些数据作为字符串传递,当它应该是float或datetime时(客户端正在进行语言环境处理)

SQL Server也永远不会识别“0,05” auf Deutsch

SET LANGUAGE GERMAN

DECLARE @val float
SET @val = 0,05 --fail
GO
DECLARE @dt datetime
SET @dt = '23 Mrz 2009' --fail
GO
DECLARE @dt datetime
SET @dt = '23.03.2009' --ok
GO

“servername \ instance,portNumber”对于SQL Server是正确的。