在SQL Server 2005中,是否有任何方法可以一次更改整个数据库的排序规则?

问题描述:

使用SQL Server Management Studio,我从一台服务器备份了一个数据库并将其恢复到本地SQL Server 2005副本。但是,备份数据库的排序规则是SQL_Latin1_General_CP1_CI_AI,我试图将列与数据库进行比较是Latin1_General_CI_AI。在SQL Server 2005中,是否有任何方法可以一次更改整个数据库的排序规则?

该数据库有很多关键和约束,这使得每个列单独更改错误。

更改SQL Server 2005中整个数据库的排序规则的最佳方法是什么?

有没有简单的方法,你必须改变DB(ALTER DATABASE)的整理,并单独所有列(ALTER TABLE)。也许有一个准备好使用工具,也许你需要自己写。也许Visual Studio 2010的数据比较工具可能很有用(Data -> Data Compare菜单)。

+0

ALTER DATABASE不会更改任何现有用户定义表中的列的排序规则。 – 2011-05-16 11:17:06

+0

如果你的列使用数据库默认值(我总是会推荐),那么不需要单独更改这些数据... – 2011-05-16 11:33:34

+0

@marc_s哦,我明白了。那么,也许设置db整理就足够了。 – 2011-05-16 11:40:13

可以使用ALTER DATABASE语句的COLLATE子句更改在用户数据库中创建的任何新对象的排序规则。 此声明不会更改任何现有用户定义表中的列的排序规则。这些可以使用ALTER TABLECOLLATE子句进行更改。


参考:

Setting and Changing the Database Collation

Setting and Changing the Column Collation