Поделиться через


nchar и nvarchar (Transact-SQL)

Символьные типы данных, имеющие постоянную длину, nchar, или переменную длину, nvarchar, содержащие данные в Юникоде и использующие набор символов UCS-2.

Применимо для следующих объектов: SQL Server (SQL Server 2008 по текущую версию), База данных SQL Windows Azure (С первоначального выпуска по текущий выпуск).

Аргументы

  • nchar [ ( n ) ]
    Строковые данные постоянной длины в Юникоде. Параметр n определяет длину строки и должен иметь значение от 1 до 4000. Размер при хранении составляет удвоенное значение n в байтах. Если кодовая страница параметров сортировки использует двухбайтовые символы, размер хранения остается равным n байт. В зависимости от символьной строки для хранения n символов может понадобиться менее n байт. По стандарту ISO синонимами для nchar являются national char и national character..

  • nvarchar [ ( n | max ) ]
    Строковые данные переменной длины в Юникоде. Параметр n определяет длину строки и должен иметь значение от 1 до 4000. Значение max указывает, что максимальный размер при хранении составляет 2^31-1 байт (2 ГБ). Размер хранилища в байтах вдвое больше числа введенных символов + 2 байта. По стандарту ISO синонимами для типа nvarchar являются типы national char varying и national character varying.

Замечания

Если значение n при определении данных или в инструкции объявления переменной не указано, то длина по умолчанию равна 1. Если n не указан в функции CAST, длина по умолчанию составляет 30.

Рекомендуется использовать nchar, если размеры элементов данных в столбцах предполагаются сходные.

Рекомендуется использовать nvarchar, если размеры элементов данных в столбцах предполагаются различные.

Тип sysname — это предоставляемый системой определяемый пользователем тип данных, который функционально эквивалентен типу nvarchar(128), за исключением того, что он не допускает значения NULL. Тип sysname используется для ссылок на имена объектов баз данных.

Объектам, в которых используются типы данных nchar или nvarchar, по умолчанию назначаются параметры сортировки базы данных, если только иные параметры сортировки не назначены с использованием предложения COLLATE.

Для типов данных nchar и nvarchar параметр SET ANSI_PADDING всегда принимает значение ON. Параметр SET ANSI_PADDING OFF не применяется к типам данных nchar и nvarchar.

Установите префикс символьных строковых констант в кодировке Юникод в виде буквы 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)

Основные понятия

Поддержка параметров сортировки и Юникода