在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
菜单)。
答
可以使用ALTER DATABASE语句的COLLATE
子句更改在用户数据库中创建的任何新对象的排序规则。 此声明不会更改任何现有用户定义表中的列的排序规则。这些可以使用ALTER TABLE的COLLATE
子句进行更改。
参考:
ALTER DATABASE不会更改任何现有用户定义表中的列的排序规则。 – 2011-05-16 11:17:06
如果你的列使用数据库默认值(我总是会推荐),那么不需要单独更改这些数据... – 2011-05-16 11:33:34
@marc_s哦,我明白了。那么,也许设置db整理就足够了。 – 2011-05-16 11:40:13