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 の 2 倍のバイト数です。 照合順序のコード ページで 2 バイト文字が使用されている場合、記憶領域のサイズは n バイトのままです。 文字列によっては、n バイトの記憶領域のサイズが n に指定された値よりも小さくなる可能性があります。 nchar の ISO シノニムは、national char および national character です。

  • nvarchar [ ( n | max ) ]
    可変長の Unicode 文字列データです。 n では文字列の長さを定義し、指定できる値の範囲は 1 ~ 4,000 です。 max は最大格納サイズが 2^31-1 バイト (2 GB) であることを示します。 記憶領域のサイズ (バイト単位) は、入力したデータの実際の長さの 2 倍のバイト数に 2 バイトを足した数です。 nvarchar の ISO シノニムは、national char varying および national character varying です。

説明

データ定義または変数宣言ステートメントで n を指定しないと、既定の長さは 1 になります。 CAST 関数で n を指定しないと、既定の長さは 30 になります。

列データ エントリが類似したサイズになると思われる場合は、nchar を使用します。

列データ エントリのサイズが大幅に異なると思われる場合は、nvarchar を使用します。

sysname は、NULL 値を許可しないという点を除き、機能上は nvarchar(128) と同じ、システムから提供されているユーザー定義データ型です。 sysname はデータベース オブジェクト名を参照するために使用されます。

COLLATE 句で特定の照合順序を指定しない限り、nchar 型または nvarchar 型を使用するオブジェクトにはデータベースの既定の照合順序が割り当てられます。

SET ANSI_PADDING は、nchar と nvarchar に対して常に ON です。 SET ANSI_PADDING OFF は、nchar または nvarchar データ型には適用されません。

Unicode 文字列定数に、プレフィックスとして文字 N を付けます。 プレフィックス 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)

関連項目

参照

ALTER TABLE (Transact-SQL)

CAST および CONVERT (Transact-SQL)

COLLATE (Transact-SQL)

CREATE TABLE (SQL Server)

データ型 (Transact-SQL)

DECLARE @local\_variable (Transact-SQL)

LIKE (Transact-SQL)

SET ANSI_PADDING (Transact-SQL)

SET @local\_variable (Transact-SQL)

概念

照合順序と Unicode のサポート