Usando dados char e varchar

Os tipos de dados char e varchar armazenam dados compostos do seguinte:

  • Caracteres maiúsculos e minúsculos, como a, b e C.

  • Numerais, como 1, 2 e 3.

  • Caracteres especiais, como arroba, (@), E comercial (&) e ponto de exclamação (!).

Os dados char ou varchar podem ser um único caractere ou uma cadeia de caracteres com no máximo de 8.000 caracteres de dados char, e até 2^31 caracteres de dados varchar. Os tipos de dados varchar podem tomar duas formas. Os dados varchar podem ter um comprimento máximo especificado de caracteres, por exemplo, varchar(6) indicando que esse tipo de dados pode armazenar no máximo seis caracteres; ou pode ter a forma varchar(max),, que aumenta o número máximo de caracteres a serem armazenados por esse tipo de dados para 2^31. Para obter mais informações sobre o varchar(max),, consulte Usando tipos de dados de valor grande.

Cada valor de dados char e varchar tem um agrupamento. Os agrupamentos definem atributos, como padrões de bit usados para representar cada caractere, regras de comparação, diferenciação entre maiúsculas e minúsculas e distinção de acentos. Cada banco de dados possui um agrupamento padrão. Colunas definidas ou constantes especificadas são atribuídas ao agrupamento padrão do banco de dados, exceto quando um agrupamento específico é atribuído pela cláusula COLLATE. Quando dois valores char ou varchar com agrupamentos diversos são combinados ou comparados, as regras de precedência de agrupamento determinam o agrupamento que será usado para a operação.

As constantes de caractere devem ser incluídas entre aspas simples (') ou aspas duplas ("). É recomendado colocar as constantes de caractere entre aspas simples. Às vezes não é permitido colocar uma constante de caractere entre aspas duplas, quando a opção QUOTED IDENTIFIER está definida como ON.

Esse exemplo do Transact-SQL define uma variável de caractere para um valor:

DECLARE @MyCharVar CHAR(25)
SET @MyCharVar = 'Ricardo Adocicados'

Ao usar aspas simples para delimitar uma constante de caractere com uma aspa simples incorporada, use duas aspas simples para representar a aspa simples incorporada. Por exemplo:

SET @MyCharVar = 'O''Leary'

Se os dados a serem armazenados forem mais longos que o número de caracteres permitidos, os dados ficarão truncados. Por exemplo, se uma coluna estiver definida como char(10) e o valor "This is a really long character string" estiver armazenado na coluna, o SQL Server irá truncar a cadeia de caracteres em "This is a ".

O tipo de dados char é de comprimento fixo quando a cláusula NOT NULL está especificada. Se um valor mais curto que o comprimento da coluna for inserido em uma coluna char NOT NULL, o valor será preenchido à direita, com espaços em branco, até atingir o tamanho da coluna. Por exemplo, se uma coluna estiver definida como char(10) e os dados a serem armazenados forem "music", o SQL Server armazenará os dados como "music_____", onde "_" indica um espaço em branco.

Se ANSI_PADDING estiver definida como ON quando uma coluna char NULL for criada, ela se comportará da mesma forma que uma coluna char NOT NULL: os valores serão preenchidos à direita até atingir o tamanho da coluna. Se ANSI_PADDING estiver definido como OFF quando uma coluna char NULL for criada, ela se comportará da mesma forma que uma coluna varchar com ANSI_PADDING definido como OFF: os espaços em branco à direita ficarão truncados.

O tipo de dados varchar é um tipo de dados de comprimento variável. Valores menores que o tamanho da coluna não são preenchidos à direita até atingir o tamanho da coluna. Se a opção ANSI_PADDING tiver sido definida como OFF durante a sua criação, qualquer espaço em branco à direita ficará truncado pelos valores de caracteres armazenados na coluna. Se ANSI_PADDING tiver sido definida como ON durante a criação da coluna, os espaços em branco à direita não ficarão truncados.

A forma pela qual o padrão de bits armazenados nos bytes de uma cadeia de caracteres é interpretado baseia-se na página de código do MicrosoftSQL Server especificada na configuração. Um objeto char ou varchar pode conter qualquer caractere na página de código do SQL Server. .

Os aplicativos que usam drivers ODBC do SQL Server da versão 6.5 ou anterior do SQL Server oferecem suporte somente para o máximo de 255 bytes de dados de caracteres. Se esses aplicativos tentarem recuperar parâmetros de caracteres da versão 7.0 ou posterior do SQL Server, ou colunas de conjunto de resultados contendo mais de 255 bytes de dados, os dados de caracteres ficarão truncados em 255 bytes.