2012-12-11 85 views
2

我目前正在與應用排序規則被容納在數據庫服務器上我的SQL Server數據庫的工作 - 的SQL Server 2012將整理到SQL Server數據庫

每個數據庫都會有不同的排序規則的數據,從不同拉丁語,Cryillic和一個阿拉伯數據庫。

我有3個問題:

  1. 是否有可能到多個排序規則適用於相同的SQL Server數據庫?
  2. 不同排序規則的數據庫在同一個數據庫服務器上,它們可能會在服務器的排序規則和數據庫之間發生衝突嗎?
  3. 最後 - 是否有一個腳本可以用來將排序規則應用於每個數據庫,注意它們是否已創建幷包含數據?

回答

2

是否有可能到多個排序規則適用於相同的SQL Server數據庫 ?

數據庫排序規則只是該數據庫中新列的默認值。只要針對不同的列,您可以指定不同的排序規則。你甚至可以在視圖或專門的SQL中指定排序規則。

不同的排序規則的事實數據庫是同一個數據庫 服務器上,可能他們對於 服務器和數據庫的排序規則之間衝突的可能性?

服務器排序規則只是新數據庫的默認排序規則。通常,這也是mastertempdb所使用的排序規則。這意味着對臨時表的查詢需要您明確指定排序規則。

最後 - 是有一個腳本,我可以用它來歸類應用到各種 數據庫,並指出他們被創建,並且包含數據?

可以使用alter database命令:

ALTER DATABASE TestDb ALTER COLLATION French_CI_AI 

注意,所有現有的列將保持其歸類。如前所述,數據庫整理只是新列的默認值。

+0

非常感謝這個信息 - 我有2個後續問題。 1.如何更改現有列上的排序規則? 2.如果我想列存儲來自不同排序規則的數據,這可能嗎?這個設置可能會有問題 - 例如。西里爾文和拉丁文數據在同一列。 – amateur

+0

1.'alter table ... alter column ...'的作品,2.整理只是影響排序和比較。存儲將工作正常(只要你使用一個Unicode列,即'nvarchar',而不是'varchar') – Andomar

+0

偉大的東西,感謝這個信息 - 任何方式來生成一個腳本來改變整個數據庫的排序規則? – amateur

相關問題