Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:Banco de Dados SQL do
Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
Analytics Platform System (PDW)
Banco de Dados SQL no Microsoft Fabric
Tipos de dados de caracteres que são de tamanho fixo, ncharou de tamanho variável, nvarchar. No SQL Server 2012 (11.x) e versões posteriores, quando um agrupamento habilitado para
Arguments
nchar [ ( n ) ]
Dados de cadeia de caracteres de tamanho fixo. n define o tamanho da cadeia de caracteres em pares de bytes e deve ser um valor de 1 a 4.000. O tamanho do armazenamento é duas vezes n bytes. Para codificação UCS-2, o tamanho do armazenamento é duas vezes n bytes e o número de caracteres que podem ser armazenados também é n. Para codificação UTF-16, o tamanho do armazenamento ainda é duas vezes n bytes, mas o número de caracteres que podem ser armazenados pode ser menor do que n, porque os caracteres suplementares usam dois pares de bytes (também chamados de pares substitutos ). Os sinónimos ISO para nchar são de caracteres nacionais e carácter nacional.
nvarchar [ ( n | máximo ) ]
Dados de cadeia de caracteres de tamanho variável. O valor de n define o tamanho da cadeia de caracteres em pares de bytes e pode ser de 1 a 4.000. máximo indica que o tamanho máximo de armazenamento é de 2^31-1 caracteres (2 GB). O tamanho do armazenamento é duas vezes n bytes + 2 bytes. Para codificação UCS-2, o tamanho do armazenamento é duas vezes n bytes + 2 bytes e o número de caracteres que podem ser armazenados também é n. Para codificação UTF-16, o tamanho do armazenamento ainda é duas vezes n bytes + 2 bytes. No entanto, o número de caracteres que podem ser armazenados pode ser menor do que n, porque os caracteres suplementares usam dois pares de bytes (também chamados de pares substitutos ). Os sinónimos ISO para nvarchar são char nacional variando e caráter nacional variando.
Remarks
Um equívoco comum é pensar que com nchar(n) e nvarchar(n), o n define o número de caracteres. No entanto, em nchar(n) e nvarchar(n), o n define o comprimento da cadeia de caracteres em pares de bytes (0-4.000). n nunca define o número de caracteres que podem ser armazenados. Este conceito é semelhante à definição de char e varchar.
O equívoco acontece porque ao usar caracteres definidos no intervalo Unicode de 0 a 65.535, um caractere pode ser armazenado por cada par de bytes. No entanto, em intervalos Unicode mais altos (65.536 a 1.114.111), um caractere pode usar dois pares de bytes. Por exemplo, em uma coluna definida como nchar(10), o Mecanismo de Banco de Dados pode armazenar 10 caracteres que usam um par de bytes (intervalo Unicode de 0 a 65.535), mas menos de 10 caracteres ao usar dois pares de bytes (intervalo Unicode 65.536 a 1.114.111). Para obter mais informações sobre armazenamento Unicode e intervalos de caracteres, consulte Diferenças de armazenamento entre UTF-8 e UTF-16.
Quando n não é especificado em uma definição de dados ou instrução de declaração variável, o comprimento padrão é 1. Quando n não é especificado com a função CAST, o comprimento padrão é 30.
Se você usar nchar ou nvarchar, recomendamos que:
- Use nchar quando os tamanhos das entradas de dados da coluna forem consistentes.
- Use nvarchar quando os tamanhos das entradas de dados da coluna variarem consideravelmente.
- Use nvarchar(max) quando os tamanhos das entradas de dados da coluna variam consideravelmente, e o comprimento da cadeia de caracteres pode exceder 4.000 pares de bytes.
sysname é um tipo de dados definido pelo usuário fornecido pelo sistema que é funcionalmente equivalente a nvarchar(128), exceto que não é anulável. sysname é usado para fazer referência a nomes de objetos de banco de dados.
Objetos que usam nchar ou nvarchar recebem o agrupamento padrão do banco de dados, a menos que um agrupamento específico seja atribuído usando a cláusula COLLATE.
SET ANSI_PADDING é sempre ON para nchar e nvarchar.
SET ANSI_PADDING OFF não se aplica aos tipos de dados nchar ou nvarchar.
Prefixar uma constante de cadeia de caracteres Unicode com a letra N para sinalizar a entrada UCS-2 ou UTF-16, dependendo se um agrupamento SC é usado ou não. Sem o prefixo N, a cadeia de caracteres é convertida na página de código padrão do banco de dados que pode não reconhecer determinados caracteres. No SQL Server 2019 (15.x) e versões posteriores, quando um agrupamento habilitado para UTF-8 é usado, a página de código padrão é capaz de armazenar o conjunto de caracteres Unicode UTF-8.
Quando você prefixa uma constante de cadeia de caracteres com a letra
Warning
Cada coluna de
Converter dados de caracteres
Para obter informações sobre como converter dados de caracteres, consulte char e varchar. Para obter mais informações sobre como converter entre tipos de dados, consulte CAST e CONVERT.
Conteúdo relacionado
- TABELA ALTER (Transact-SQL)
- CAST e CONVERT (Transact-SQL)
- COLATO (Transact-SQL)
- CRIAR TABELA (Transact-SQL)
- Tipos de dados (Transact-SQL)
- DECLARE @local_variable (Transact-SQL)
- COMO (Transact-SQL)
- CONJUNTO ANSI_PADDING (Transact-SQL)
- SET @local_variable (Transact-SQL)
- de suporte a agrupamento e Unicode
- Single-Byte e conjuntos de caracteres multibyte