首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安装MSSQL2012后更改系统区域设置可以吗?

安装MSSQL2012后更改系统区域设置可以吗?
EN

Database Administration用户
提问于 2017-11-24 12:55:42
回答 2查看 966关注 0票数 2

我在Windows2012 R2生产服务器上预装了一个MS 2012实例。Windows为英语(EN-US),Server排序规则为SQL_Latin1_General_CP1_CI_AS。该系统使用nvarchar字段处理所有中文数据。

稍后,由于某些原因(与sql server无关),我可能不得不将Windows2012 R2服务器的默认系统区域设置更改为中文。这会不会对SQL服务器实例造成任何不理想的副作用?

EN

回答 2

Database Administration用户

回答已采纳

发布于 2017-11-26 04:25:24

一般来说你应该没事的。我所知道的唯一可能受到影响的领域是SQLCLR,在这种情况下,必须满足以下条件:

  1. ( 操作系统的LCID与加载程序集的数据库的默认排序规则的LCID不匹配,OR
  2. 加载程序集的数据库的默认排序规则要么是二进制排序规则,要么是以下内容的任何组合:区分大小写、重音不敏感、宽度敏感或Kana类型敏感的 )。
  3. 正在使用自定义SQLCLR代码。
  4. SqlString被用作输入参数类型。
  5. SqlString参数正在与string内联连接,同时不使用Value属性或ToString()方法(即"some string" + SqlStringInputParam;)。
  6. 或者,可能使用正则表达式/ Regex

要明确的是,此问题涉及加载程序集的数据库的默认排序规则,而不是实例/服务器级别的排序规则,甚至也不涉及任何字符串列或任何字符串文本或变量的排序规则,这些排序规则都是通过COLLATE关键字设置的。

如果数据库的默认排序规则是SQL_Latin1_General_CP1_CI_AS,因为这就是实例级排序规则,那么上面的#1和#2都不是真的。在这种情况下,如果数据库中有任何与上面第4-6项匹配的SQLCLR代码,那么您就不会看到任何问题。但是,更改OS的区域设置将使上面的第1项变为真,在这种情况下,如果有任何SQLCLR代码与上面第4-6项相匹配,那么该代码将开始抛出“排序不匹配”异常。

诚然,遇到这种情况的可能性相当低。但是,它已经发生了,所以最好是意识到这一点。

票数 1
EN

Database Administration用户

发布于 2017-11-25 18:45:18

如果更改Windows,Server安装将不会发生任何变化,因为它是用特定的排序规则SQL_Latin1_General_CP1_CI_AS安装的。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/191654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档