2010-07-21 47 views

回答

47

您基本上需要再次運行安裝以使用新歸類重建master數據庫。您無法以其他方式更改整個服務器的排序規則。

參見:

更新:如果要更改數據庫的整理,就可以得到使用這段T-SQL進行當前整理:

SELECT name, collation_name 
FROM sys.databases 
WHERE name = 'test2' -- put your database name here 

這將產生一個有價值的東西,如:

Latin1_General_CI_AS 

_CI的意思是 「不區分大小寫」 - 如果你想區分大小寫的,在它的地方使用_CS

Latin1_General_CS_AS 

所以你的T- SQL命令是:

ALTER DATABASE test2 -- put your database name here 
    COLLATE Latin1_General_CS_AS -- replace with whatever collation you need 

你可以使用服務器上所有可用的歸類列表:

SELECT * FROM ::fn_helpcollations() 

可以看到服務器的當前歸類使用:

SELECT SERVERPROPERTY ('Collation') 
+0

好的,謝謝你的信息。現在至少我想嘗試更改數據庫的排序規則以使其不區分大小寫。我發現這個'ALTER DATABASE DEV_DB COLLATE [不區分大小寫]鍵是相同的。但不確定用於不區分大小寫的值。任何幫助都是可觀的! – JPReddy 2010-07-21 05:22:46

2

你可以這樣做,但這些變化將對於插入數據庫的新數據的影響。從長遠來看,按照上面的建議。

此外,還有一些技巧可以覆蓋排序規則,例如存儲過程或函數的參數,別名數據類型和變量都被指定爲數據庫的默認排序規則。要更改別名類型的排序規則,您必須刪除別名並重新創建它。

您可以通過使用COLLATE子句來覆蓋文字字符串的默認排序規則。如果不指定排序規則,則會爲該文字指定數據庫默認排序規則。您可以使用DATABASEPROPERTYEX查找數據庫的當前歸類。

您可以通過在SELECT語句的ORDER BY子句中指定排序規則來覆蓋服務器,數據庫或列排序規則。

相關問題