我更改了数据库的排序规则。更改前的所有text / varchar列都设置为数据库默认值。当对DB排序规则进行更改时,我原本期望设置为数据库默认值的列保持数据库默认值,因此保持链接到新的DB排序规则。但是,我注意到这些列实际上已更改为专门设置为旧排序规则。
我确实有一个会更新所有列的脚本,但我很感兴趣为什么这些列不会保留database_default或至少设置为新的排序规则。所以我的问题是:
1:为什么列没有更新?
2:有没有办法让他们自动更新?
答案 0 :(得分:2)
我最近自己遇到过这个问题。更改数据库默认排序规则仅适用于创建的新对象 - 它不会更改任何现有对象(源:Books Online - “您可以通过使用更改在用户数据库中创建的任何新对象的排序规则ALTER DATABASE语句的COLLATE子句。此语句不会更改任何现有用户定义表中列的排序规则。可以使用ALTER TABLE的COLLATE子句更改这些列。“
我不知道有任何方法可以让它们自动更新 - 您需要手动更新它们。我使用了here
中的方法