COLLATE (Transact-SQL)
更新: 2005 年 12 月 5 日
這是可套用至資料庫定義或資料行定義來定義定序,或套用至字元字串運算式來套用定序轉換的子句。
語法
COLLATE { <collation_name> | database_default }
<collation_name> :: =
{ Windows_collation_name } | { SQL_collation_name }
引數
collation_name
這是要套用至運算式、資料行定義或資料庫定義之定序的名稱。collation_name 只能是指定的 Windows_collation_name 或 SQL_collation_name。collation_name 必須是常值。collation_name 不能以變數或運算式表示。Windows_collation_name 是 Windows 定序名稱的定序名稱。
SQL_collation_name 是 SQL 定序名稱的定序名稱。
- database_default
使 COLLATE 子句繼承目前資料庫的定序。
備註
您可以在許多層級指定 COLLATE 子句。其中包括:
- 建立或變更資料庫。
您可以利用 CREATE DATABASE 或 ALTER DATABASE 陳述式的 COLLATE 子句來指定資料庫的預設定序。您也可以在利用 SQL Server Management Studio 來建立資料庫時指定定序。如果您沒有指定定序,就會將 SQL Server 執行個體的預設定序指派給資料庫。 - 建立或變更資料表資料行。
您可以利用 CREATE TABLE 或 ALTER TABLE 陳述式的 COLLATE 子句來指定每個字元字串資料行的定序。您也可以在利用 SQL Server Management Studio 來建立資料表時指定定序。如果您沒有指定定序,就會將資料庫的預設定序指派給資料行。
您也可以利用 COLLATE 子句中的 database_default 選項,指定暫存資料表中的資料行使用連接目前的使用者資料庫 (而非 tempdb) 之定序預設值。 - 轉換運算式的定序。
您可以利用 COLLATE 子句,將字元運算式轉換成特定定序。字元常值和變數會被指派目前資料庫的預設定序。資料行參考會被指派資料行的定義定序。如需運算式的定序,請參閱<定序優先順序 (Transact-SQL)>。
識別碼的定序會隨著定義的層級而不同。執行個體層級物件 (如登入和資料庫名稱) 的識別碼會被指派執行個體的預設定序。資料庫內之物件 (如資料表、檢視和資料行名稱) 的識別碼會被指派資料庫的預設定序。例如,兩份大小寫不同的同名資料表,可以建立在定序區分大小寫的資料庫中,但不能建立在定序不區分大小寫的資料庫中。如需詳細資訊,請參閱<識別碼>。
當連接內容只有一個相關聯資料庫時,可以建立變數、GOTO 標籤、暫時預存程序和暫存資料表,之後當內容切換到另一個資料庫時,可以參考它們。變數、GOTO 標籤、暫時預存程序和暫存資料表的識別碼,都在執行個體的預設定序中。
COLLATE 子句只適用於 char、varchar、text、nchar、nvarchar 和 ntext 資料類型。
定序通常是用定序名稱來識別。安裝程式例外,在安裝程式中,您並不指定 Windows 定序的定序名稱,而是指定定序指示項,然後再選取核取方塊來指定區分或不區分大小寫和腔調字的二進位排序或字典排序。
您可以執行系統函數 fn_helpcollations 來擷取 Windows 定序和 SQL 定序的所有有效定序名稱清單:
SELECT *
FROM fn_helpcollations()
SQL Server 只能支援基礎作業系統所支援的字碼頁。當您執行視定序而定的動作時,所參考的物件使用的 SQL Server 定序必須使用電腦上執行的作業系統所支援的字碼頁。這些動作包括:
- 當您建立或變更資料庫時,指定資料庫的預設定序。
- 當您建立或變更資料表時,指定資料行的定序。
- 當還原或附加資料庫時,作業系統必須支援資料庫的預設定序及資料庫中任何 char、varchar 和 text 資料行或參數的定序。
支援 char 和 varchar 資料類型的字碼頁轉換,但不支援 text 資料類型的字碼頁轉換。不會報告字碼頁轉換期間所遺失的資料。
如果指定給被參考物件的定序或被參考物件所用的定序使用 Windows 不支援的字碼頁,SQL Server 會發出錯誤。
請參閱
參考
ALTER TABLE (Transact-SQL)
定序優先順序 (Transact-SQL)
常數 (Transact-SQL)
CREATE DATABASE (Transact-SQL)
CREATE TABLE (Transact-SQL)
DECLARE @local\_variable (Transact-SQL)
資料表 (Transact-SQL)
其他資源
說明及資訊
變更歷程記錄
版本 | 歷程記錄 |
---|---|
2005 年 12 月 5 日 |
|