sp_addtype (Transact-SQL)

Cria um tipo de dados de alias.

Observação importanteImportante

Esse recurso será removido em uma versão futura do Microsoft SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam. Use CREATE TYPE em vez disso.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

sp_addtype [ @typename = ] type, 
    [ @phystype = ] system_data_type 
    [ , [ @nulltype = ] 'null_type' ] ;

Argumentos

  • [ @typename= ] type
    É o nome do tipo de dados de alias. Os nomes de tipo de dados de alias seguem as regras para identificadores e devem ser exclusivos em cada banco de dados. type é sysname, sem nenhum padrão.

  • [ @phystype=] system_data_type
    É o tipo de dados físico ou fornecido do SQL Server no qual o tipo de dados de alias se baseia. system_data_type é sysname, sem padrão, e pode ser um dos seguintes valores:

    bigint

    binary(n)

    bit

    char(n)

    datetime

    decimal

    float

    image

    int

    money

    nchar(n)

    ntext

    numeric

    nvarchar(n)

    real

    smalldatetime

    smallint

    smallmoney

    sql_variant

    text

    tinyint

    uniqueidentifier

    varbinary(n)

    varchar(n)

    São necessárias aspas em todos os parâmetros que têm espaços em branco ou marcas de pontuação incorporados. Para obter mais informações sobre tipos de dados disponíveis, consulte Tipos de dados (Transact-SQL).

  • n
    É um inteiro de não negativo que indica o comprimento pelo tipo de dados escolhido.

  • P
    É um inteiro não negativo indicando o número total máximo de dígitos decimais que podem ser armazenados à esquerda e à direita do ponto decimal. Para obter mais informações, consulte decimal e numeric (Transact-SQL).

  • s
    É um inteiro não negativo indicando o número máximo de dígitos decimais que podem ser armazenados à direita do ponto decimal e deve ser menor que ou igual à precisão. Para obter mais informações, consulte decimal e numeric (Transact-SQL).

  • [ @nulltype = ] 'null_type'
    Indica a forma como o tipo de dados de alias trata valores nulos. null_type é varchar(8), com um padrão NULL, e deve estar entre aspas simples ('NULL', 'NOT NULL' ou 'NONULL'). Se null_type não for definido explicitamente através de sp_addtype, ele será definido como a nulabilidade padrão atual. Use a função de sistema GETANSINULL para determinar a nulabilidade padrão atual. Isso pode ser ajustado usando a instrução SET ou ALTER DATABASE. A nulabilidade deve ser definida explicitamente. Se @phystype for bit e @nulltype não for especificado, o padrão será NOT NULL.

    ObservaçãoObservação

    O parâmetro null_type define apenas a nulabilidade padrão para esse tipo de dados. Se a nulabilidade for explicitamente definida quando o tipo de dados de alias for usado durante a criação da tabela, ela terá precedência sobre a nulabilidade padrão. Para obter mais informações, consulte ALTER TABLE (Transact-SQL) e CREATE TABLE (Transact-SQL)..

Valores de código de retorno

0 (êxito) ou 1 (falha)

Conjuntos de resultados

Nenhum

Comentários

Um nome de tipo de dados de alias deve ser exclusivo no banco de dados, mas os tipos de dados com nomes diferentes podem ter a mesma definição.

Executar sp_addtype cria um tipo de dados de alias que aparece na exibição do catálogo sys.types para um banco de dados específico. Para tipo de dados de alias ficar disponível em todos os novos bancos de dados definidos pelo usuário todo novos, adicione-o ao modelo. Depois da criação de um tipo de dados de alias, você pode usá-lo em CREATE TABEL ou ALTER TABLE, e também vincular padrões e regras a ele. Todos os tipos de dados de alias escalares que são criados usando sp_addtype estão contidos no esquema dbo.

Os tipos de dados de alias herdam o agrupamento padrão do banco de dados. Os agrupamentos de colunas e variáveis de tipos de alias são definidos nas instruções Transact-SQL CREATE TABLE, ALTER TABLE e DECLARE @local\_variable. A alteração do agrupamento padrão do banco de dados aplica-se apenas a novas colunas e variáveis do tipo; isso não altera o agrupamento das existentes.

Observação sobre segurançaObservação sobre segurança

Para fins de compatibilidade com versões anteriores, a função de banco de dados pública automaticamente obtém a concessão da permissão REFERENCES nos tipos de dados de alias que são criados usando sp_addtype. Observe que quando tipos de dados de alias são criados usando a instrução CREATE TYPE em vez de sp_addtype, essa concessão automática não ocorre.

Os tipos de dados de alias não podem ser definidos usando o tipo de dados SQL Servertimestamp,table, xml, varchar(max), nvarchar(max) ou varbinary(max).

Permissões

Requer associação na função de banco de dados fixa db_owner ou db_ddladmin.

Exemplos

A. Criando um tipo de dados de alias que não permite valores nulos

O exemplo a seguir cria um tipo de dados de alias chamado ssn (número de previdência social) que se baseia no tipo de dados varchar fornecido pelo SQL Server. O tipo de dados ssn é usado para colunas que contém números de previdência social de 11 dígitos (999-99-9999). A coluna não pode ser NULL.

Observe que varchar(11) está entre aspas simples porque contém pontuação (parênteses).

USE master;
GO
EXEC sp_addtype ssn, 'varchar(11)', 'NOT NULL';
GO

B. Criando um tipo de dados de alias que permite valores nulos

O exemplo a seguir cria um tipo de dados de alias (baseado em datetime) chamado birthday que permite valores nulos.

USE master;
GO
EXEC sp_addtype birthday, datetime, 'NULL';

C. Criando tipos de dados de alias adicionais

O exemplo a seguir cria dois tipos de dados de alias adicionais, telephone e fax, para número de telefone e fax nacionais e internacionais.

USE master;
GO
EXEC sp_addtype telephone, 'varchar(24)', 'NOT NULL';
GO
EXEC sp_addtype fax, 'varchar(24)', 'NULL';
GO