如何将 MS SQL 2005 DB 从排序规则 SQL_Latin1_General_CP1_CI 转换为 SQL_Latin1_General_CP1_C1_AS?

如何将 MS SQL 2005 DB 从排序规则 SQL_Latin1_General_CP1_CI 转换为 SQL_Latin1_General_CP1_C1_AS?

如何将 MS SQL 2005 DB 从排序规则转换为SQL_Latin1_General_CP1_CISQL_Latin1_General_CP1_C1_AS

SQL_Latin1_General_CP1_C1_AS当我转到时没有出现在选项列表中:

  • 右键单击数据库并选择“属性”
  • 选项
  • 排序规则

答案1

我认为您正在寻找的排序规则是 CI,以字母 I 开头,而不是数字 1。再次检查屏幕,但如果仍然看不到它,请尝试运行包含数据库名称的此脚本:

USE [master]
GO
ALTER DATABASE [MyDatabaseName] COLLATE SQL_Latin1_General_CP1_CI_AS
GO

答案2

请记住,改变数据库的排序规则不会改变现有数据的排序规则,而只会改变用于创建新表或列的排序规则,现有数据将保留相同的排序规则。

如果您想要完全迁移数据并更改排序规则,则需要使用正确的排序规则复制空表中的所有数据。

答案3

答案4

据我所知,数据没有排序规则,只有架构才有。排序规则决定了如何比较字符串值。更改所有列、所有表的架构是一件非常麻烦的事情。上次我这样做时,使用 Red Gate SQL Compare 将架构转储到文件中。然后,我通过文件执行了 FIND+Replace 更改架构字符串。最后,我将架构从文件同步回数据库

相关内容