設定或變更資料庫定序
本主題描述如何使用 SQL Server Management Studio 或 Transact-SQL,在 SQL Server 2014 中設定和變更資料庫定序。 如果沒有指定定序,會使用伺服器定序。
本主題內容
開始之前:
若要使用下列項目設定或變更資料庫定序:
開始之前
限制事項
僅限 Windows Unicode 定序只能搭配 COLLATE 子句使用,以便將定序套用至資料行層級和運算式層級資料的
nchar
、nvarchar
和ntext
資料類型。 這些定序無法搭配 COLLATE 子句使用,以變更資料庫或伺服器執行個體的定序。如果參考物件所使用的指定定序或定序使用 Windows 不支援的字碼頁,Database Engine 會顯示錯誤。
建議
您可以在 Windows 定序名稱 (Transact-SQL) 和 SQL Server 定序名稱 (Transact-SQL) 中找到支援的定序名稱;您也可以使用 sys.fn_helpcollations (Transact-SQL) 系統函數。
當您變更資料庫定序時,會變更下列各項:
系統資料表中的任何
char
、varchar
、text
、nchar
、nvarchar
,或ntext
資料行都會變更為新定序。預存程序與使用者定義函數的任何現有
char
、varchar
、text
、nchar
、nvarchar
,或ntext
參數和純量傳回值,都會變更為新定序。char
、varchar
、text
、nchar
、nvarchar
,或ntext
系統資料類型,以及以這些系統資料類型為基礎的所有使用者定義資料類型,都會變更為新的預設定序。
您可以使用 ALTER DATABASE 陳述式的 COLLATE 子句,變更在使用者資料庫中建立的任何新物件的定序。 此陳述式不會變更現有使用者自訂資料表中的資料行定序。 您可以使用 ALTER TABLE的 COLLATE 子句進行變更。
安全性
權限
CREATE DATABASE
需要 master 資料庫中的 CREATE DATABASE 許可權,或需要 CREATE ANY DATABASE 或 ALTER ANY DATABASE 許可權。
ALTER DATABASE
需要資料庫的 ALTER 權限。
使用 SQL Server Management Studio
若要設定或變更資料庫定序
在 [物件總管] 中,連線到 SQL Server 資料庫引擎的執行個體,展開該執行個體,然後展開 [資料庫]。
如果您要建立新資料庫,以滑鼠右鍵按一下 [資料庫] ,然後按一下 [新增資料庫] 。 如果不要預設定序,請按一下 [選項] 頁面,然後從 [定序] 下拉式清單中選取定序。
或者,如果資料庫已經存在,以滑鼠右鍵按一下所要的資料庫,然後按一下 [屬性] 。 按一下 [選項] 頁面,然後從 [定序] 下拉式清單中選取定序。
完成後,請按一下 [確定] 。
使用 TRANSACT-SQL
若要設定資料庫定序
連線至資料庫引擎。
在標準列中,按一下 [新增查詢] 。
複製下列範例並將其貼到查詢視窗中,然後按一下 [執行] 。 此範例示範如何使用 COLLATE 子句來指定定序名稱。 範例會建立使用
MyOptionsTest
定序的Latin1_General_100_CS_AS_SC
資料庫。 在您建立資料庫之後,執行SELECT
陳述式以驗證設定。
USE master;
GO
IF DB_ID (N'MyOptionsTest') IS NOT NULL
DROP DATABASE MyOptionsTest;
GO
CREATE DATABASE MyOptionsTest
COLLATE Latin1_General_100_CS_AS_SC;
GO
--Verify the collation setting.
SELECT name, collation_name
FROM sys.databases
WHERE name = N'MyOptionsTest';
GO
若要變更資料庫定序
連線至資料庫引擎。
在標準列中,按一下 [新增查詢] 。
複製下列範例並將其貼到查詢視窗中,然後按一下 [執行] 。 此範例示範如何在 ALTER DATABASE 陳述式中使用 COLLATE 子句,以變更定序名稱。 執行
SELECT
陳述式以驗證變更。
USE master;
GO
ALTER DATABASE MyOptionsTest
COLLATE French_CI_AS ;
GO
--Verify the collation setting.
SELECT name, collation_name
FROM sys.databases
WHERE name = N'MyOptionsTest';
GO
另請參閱
定序與 Unicode 支援
sys.fn_helpcollations (Transact-SQL)
sys.databases (Transact-SQL)
SQL Server 定序名稱 (Transact-SQL)
Windows 定序名稱 (Transact-SQL)
COLLATE (Transact-SQL)
定序優先順序 (Transact-SQL)
CREATE TABLE (Transact-SQL)
CREATE DATABASE (SQL Server Transact-SQL)
ALTER TABLE (Transact-SQL)
ALTER DATABASE (Transact-SQL)