更改数据库排序规则不会更新数据库中的varchar / text字段的排序规则(MS SQL)

时间:2009-05-05 16:41:33

标签: sql-server

我更改了数据库的排序规则。更改前的所有text / varchar列都设置为数据库默认值。当对DB排序规则进行更改时,我原本期望设置为数据库默认值的列保持数据库默认值,因此保持链接到新的DB排序规则。但是,我注意到这些列实际上已更改为专门设置为旧排序规则。

我确实有一个会更新所有列的脚本,但我很感兴趣为什么这些列不会保留database_default或至少设置为新的排序规则。所以我的问题是:

1:为什么列没有更新?

2:有没有办法让他们自动更新?

1 个答案:

答案 0 :(得分:2)

我最近自己遇到过这个问题。更改数据库默认排序规则仅适用于创建的新对象 - 它不会更改任何现有对象(源:Books Online - “您可以通过使用更改在用户数据库中创建的任何新对象的排序规则ALTER DATABASE语句的COLLATE子句。此语句不会更改任何现有用户定义表中列的排序规则。可以使用ALTER TABLE的COLLATE子句更改这些列。“

我不知道有任何方法可以让它们自动更新 - 您需要手动更新它们。我使用了here

中的方法