2009-05-05 28 views
1

我更改了數據庫的歸類。更改前的所有文本/ varchar列都設置爲數據庫默認值。當對數據庫歸類進行更改時,我希望設置爲數據庫默認值的列保持數據庫默認值,並因此保持鏈接到新的數據庫歸類。但是,我注意到這些列實際上已被更改爲專門設置爲舊歸類。更改數據庫歸類不會更新數據庫中varchar/text字段的歸類(MS SQL)

我有一個腳本,將更新所有列,但我很好奇,爲什麼這些列沒有留database_default或至少得到設定新的歸類。所以我有的問題是:

1:爲什麼列沒有得到更新?

2:有沒有辦法讓他們自動更新?

回答

2

我最近自己遇到了這個問題。更改數據庫的默認排序規則僅適用於所創建的新對象 - 它不會改變任何現有的(來源:Books Online - 「你可以通過使用COLLATE子句改變在用戶數據庫中創建任何新對象的排序規則ALTER DATABASE語句,這句話並沒有改變列的排序規則中的任何現有用戶定義的表。這可以通過使用ALTER TABLE的COLLATE子句來改變。」

我不知道的任何方式讓他們自動更新 - 你需要手動更新他們我使用的方法從here

+0

感謝您的鏈接 - 所以我不會瘋狂看到表列沒有被更新!似乎有點不幸的是,選項不是由MS提供的全部更新 列。 此行回答我的問題: 「ALTER DATABASE COLLATE命令只會改變數據庫的* DEFAULT *排序規則,它不會改變現有對象(例如列和表)的排序規則,它們仍然會保存在舊的即使默認設置已更改,也可以使用排序順序。「 謝謝! – Madeleine 2009-05-05 16:51:59