Tipos de dados (Mecanismo de Banco de Dados)

Objetos que contêm dados têm um tipo de dados associado que define o tipo de dados (caractere, inteiro ou binário) que o objeto pode conter. Os seguintes objetos têm tipos de dados:

  • Colunas em tabelas e exibições.

  • Parâmetros em procedimentos armazenados

  • Variáveis.

  • Funções Transact-SQL que retornam um ou mais valores de dados de um tipo de dados específico.

  • Procedimentos armazenados que têm um código de retorno que sempre tem um tipo de dados integer.

A atribuição de um tipo de dados a um objeto define quatro atributos do objeto:

  • O tipo de dados contido pelo objeto.

  • O comprimento ou tamanho do valor armazenado.

  • A precisão do número (apenas tipos de dados numéricos).

  • A escala do número (apenas tipos de dados numéricos).

Para obter mais informações sobre precisão, escala e comprimento de tipos de dados, consulte Precisão, escala e comprimento (Transact-SQL).

O Transact-SQL tem estes tipos de dados do sistema.

Todos os dados armazenados no Microsoft SQL Server devem ser compatíveis com um desses tipos de dados base. O tipo de dados cursor é o único tipo de dados do sistema que não pode ser atribuído a uma coluna de tabela. Ele pode ser usado apenas com variáveis e parâmetros de procedimento armazenado.

Vários tipos de dados base têm sinônimos (por exemplo, rowversion é sinônimo de timestamp e national character varying é sinônimo de nvarchar). Para obter mais informações sobre o comportamento de sinônimos, consulte Sinônimos de tipo de dados (Transact-SQL).

Também podem ser criados dois tipos de tipos de dados definidos pelo usuário:

  • Tipos de dados alias são criados de tipos de dados base. Eles fornecem um mecanismo para aplicação de um nome a um tipo de dados que descreve melhor os tipos de valores a serem mantidos no objeto. Isso pode facilitar o entendimento do programador ou do administrador do banco de dados quanto ao uso pretendido de qualquer objeto definido com o tipo de dados. Por exemplo:

    -- Create a birthday datetype that allows nulls.
    CREATE TYPE birthday
    FROM datetime NULL
    GO
    -- Create a table using the new data type.
    CREATE TABLE employee (emp_id char(5), emp_first_name char(30), emp_last_name char(40), emp_birthday birthday)
    

    Para obter mais informações, consulte Trabalhando com tipos de dados de alias.

  • Tipos de dados CLR definidos pelo usuário são baseados em tipos de dados criados em código gerenciado e carregados em um assembly SQL Server. Para obter mais informações, consulte Trabalhando com tipos de dados CLR definidos pelo usuário.