nchar 和 nvarchar (Transact-SQL)
字元資料類型,它們是固定長度 (nchar) 或可變長度 (nvarchar) 的 Unicode 資料,且使用 UNICODE UCS-2 字元集。
適用於:SQL Server (SQL Server 2008 透過目前版本)、Windows Azure SQL 資料庫 (初始版本,透過目前版本)。 |
引數
nchar [ ( n ) ]
固定長度的 Unicode 字串資料。 n 會定義字串長度,而且必須是 1 到 4,000 之間的值。 儲存體大小是 n 個位元組的兩倍。 當定序字碼頁使用雙位元組字元時,儲存體大小仍是 n 位元組。 根據字串,n 位元組的儲存體大小可能小於針對 n 所指定的值。 nchar 的 ISO 同義字是 national char 和 national character。nvarchar [ ( n | max ) ]
長度可變的 Unicode 字串資料。 n 會定義字串長度,而且可以是 1 到 4,000 之間的值。 max 表示儲存體大小上限是 2^31-1 個位元組 (2 GB)。 儲存體大小 (以位元組為單位) 是輸入資料之實際長度的兩倍 + 2 位元組。 nvarchar 的 ISO 同義字是 national char varying 和 national character varying。
備註
當資料定義或變數宣告陳述式中沒有指定 n 時,預設長度為 1。 當 n 不是由 CAST 函數指定時,預設長度為 30。
當資料行資料項目的大小有可能相似時,請使用 nchar。
當資料行資料項目的大小有可能非常不同時,請使用 nvarchar。
sysname 是系統提供的使用者定義資料類型,功能相當於 nvarchar(128),但不可設為 Null。 sysname 可用於參考資料庫物件名稱。
除非利用 COLLATE 子句指派了特定定序,否則,使用 nchar 或 nvarchar 的物件會被指派資料庫的預設定序。
nchar 和 nvarchar 的 SET ANSI_PADDING 一律設為 ON。 SET ANSI_PADDING OFF 不適用於 nchar 或 nvarchar 資料類型。
以字母 N 做為 Unicode 字元字串常數的前置詞。 若沒有 N 前置詞,字串會被轉換為資料庫預設的字碼頁。 這個預設字碼頁可能無法辨識特定字元。
轉換字元資料
如需有關轉換字元資料的詳細資訊,請參閱<char 和 varchar (Transact-SQL)>。
範例
CREATE TABLE dbo.MyTable
(
MyNCharColumn nchar(15)
,MyNVarCharColumn nvarchar(20)
);
GO
INSERT INTO dbo.MyTable VALUES (N'Test data', N'More test data');
GO
SELECT MyNCharColumn, MyNVarCharColumn
FROM dbo.MyTable;
以下為結果集:
MyNCharColumn MyNVarCharColumn
--------------- --------------------
Test data More test data
(1 row(s) affected)
請參閱
參考
DECLARE @local\_variable (Transact-SQL)
SET ANSI_PADDING (Transact-SQL)
SET @local\_variable (Transact-SQL)