如何将MS SQL 2005数据库从sortingSQL_Latin1_General_CP1_CI转换为SQL_Latin1_General_CP1_C1_AS?

如何将MS SQL 2005数据库从sorting规则SQL_Latin1_General_CP1_CI转换SQL_Latin1_General_CP1_C1_AS

SQL_Latin1_General_CP1_C1_AS没有出现在选项列表中,当我去:

  • 右键单击数据库并select“属性”
  • 选项
  • 整理

我认为你正在寻找的sorting规则是CI,字母I,而不是数字1.再次检查屏幕,但是如果你仍然没有看到它,请尝试运行这个脚本,其中包含数据库名称:

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

请记住,更改数据库的sorting规则不会更改现有数据的sorting规则,而只会使用sorting规则来创build新的表或列,现有数据将保留相同的sorting规则。

如果要完全迁移数据并更改归类,则需要使用正确的归类将所有数据复制到空表中。

AFAIK数据没有sorting,只有模式。 sorting规则确定如何比较string值。 跨所有表跨所有列更改架构是主要的PITA。 上一次我做了它,我把模式转储到使用红门SQL比较文件。 然后,我通过更改模式string的文件进行了FIND +replace。 最后,我将模式从文件同步到数据库