首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否可以安全地将SQL Server SQL_Latin1_General_CP1_CI_AS转换为Latin1_General_CI_AS?

是否可以安全地将SQL Server SQL_Latin1_General_CP1_CI_AS转换为Latin1_General_CI_AS?
EN

Stack Overflow用户
提问于 2011-06-10 01:34:40
回答 2查看 78.3K关注 0票数 32

我们有一个遗留数据库,其中一些(较旧的)列使用"SQL_Latin1_General_CP1_CI_AS“,最近的更改使用了"Latin1_General_CI_AS”。

这是一种痛苦,因为连接需要额外的COLLATE语句才能工作。

我想把所有的东西都写成"Latin1_General_CI_AS“。据我所知,它们或多或少都是相同的排序规则,在此过程中我不会丢失数据……

有没有人知道是不是这样?

EN

回答 2

Stack Overflow用户

发布于 2014-02-27 07:12:55

下面是一个更完整的答案:

https://www.olcot.co.uk/revised-difference-between-collation-sql_latin1_general_cp1_ci_as-and-latin1_general_ci_as/

这些排序规则之间的关键区别在于它们应用字符扩展规则的方式。某些拉丁字符可以扩展为多个字符。SQL_xxxx排序规则在处理非unicode文本时可能会忽略这些字符扩展,但会将它们应用于unicode文本。因此:当使用一种排序规则与另一种排序规则时,联接、排序和比较可能会返回不同的结果。

示例:

Latin1_General_CI_AS下,这两条语句返回相同的一组记录,因为ß扩展为ss

代码语言:javascript
复制
SELECT * FROM MyTable3 WHERE Comments = 'strasse'
SELECT * FROM MyTable3 WHERE Comments = 'straße'

当使用SQL_Latin1_General_CP1_CI_AS时,上述语句返回不同的记录,因为ß被视为与ss不同的字符。

票数 44
EN

Stack Overflow用户

发布于 2018-10-25 12:28:12

为此,请转到数据库的属性并选择选项。

然后将集合类型更改为SQL_Latin1_General_CP1_CS_AS。

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

https://stackoverflow.com/questions/6296936

复制
相关文章

相似问题

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