Partilhar via


sp_addtype (Transact-SQL)

Aplica-se a: SQL Server

Cria um tipo de dados de alias.

Importante

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

Convenções de sintaxe de Transact-SQL

Sintaxe

sp_addtype
    [ @typename = ] N'typename'
    , [ @phystype = ] N'phystype'
    [ , [ @nulltype = ] 'nulltype' ]
    [ , [ @owner = ] N'owner' ]
[ ; ]

Argumentos

@typename [ = ] N'typename'

@typename é sysname, sem padrão.

O nome do tipo de dados de alias. Os nomes de tipo de dados de alias devem seguir as regras para identificadores e devem ser exclusivos em cada banco de dados. type é sysname, sem padrão.

@phystype [ = ] N'fistipo'

O tipo de dados físico ou fornecido pelo SQL Server no qual o tipo de dados de alias se baseia. @phystype é sysname, sem padrão, e pode ser um destes valores:

  • bigint, int, smallint e tinyint
  • binary, varbinary(n) e image
  • bit
  • char(n), nchar(n), varchar(n), nvarchar(n), **text e ntext
  • datetime e smalldatetime
  • decimal(s, P) e numérico(s, P)
  • flutuador e real
  • money e smallmoney
  • sql_variant
  • uniqueidentifier

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

  • n

    Um inteiro não negativo que indica o comprimento do tipo de dados escolhido.

  • P

    Um inteiro não negativo que indica o número total máximo de dígitos decimais que podem ser armazenados, tanto à esquerda quanto à direita da vírgula decimal. Para obter mais informações, confira decimal e numeric (Transact-SQL).

  • s

    Um inteiro não negativo que indica o número máximo de dígitos decimais que podem ser armazenados à direita da vírgula decimal e deve ser menor ou igual à precisão. Para obter mais informações, confira decimal e numeric (Transact-SQL).

@nulltype [ = ] 'tipo nulo'

Indica a maneira como o tipo de dados do alias trata valores nulos. @nulltype é varchar(8), com um padrão de NULL, e deve ser colocado entre aspas simples ('NULL', 'NOT NULL', ou 'NONULL').

Se @nulltype não estiver explicitamente definido, ele será definido como a nulidade padrão atual. Use a função do GETANSINULL sistema para determinar a nulidade padrão atual. Isso pode ser ajustado usando a SET instrução 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ção

O parâmetro @nulltype define apenas a nulidade 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).

@owner [ = ] N'proprietário'

Identificado apenas para fins informativos. Não há suporte. A compatibilidade futura não está garantida.

Valores do código de retorno

0 (sucesso) ou 1 (falha).

Conjunto 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.

A execução sp_addtype cria um tipo de dados de alias que aparece na exibição do sys.types catálogo de um banco de dados específico. Se o tipo de dados de alias precisar estar disponível em todos os novos bancos de dados definidos pelo usuário, adicione-o ao model. Depois que um tipo de dados de alias é criado, você pode usá-lo em CREATE TABLE ou ALTER TABLE, e também vincular padrões e regras ao tipo de dados de alias. Todos os tipos de dados de alias escalares criados usando sp_addtype estão contidos no dbo esquema.

Os tipos de dados de alias herdam a ordenação 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 TABLEe .DECLARE @<local_variable> A alteração da ordenação padrão do banco de dados se aplica somente a novas colunas e variáveis do tipo; não altera o agrupamento dos existentes.

Importante

Para fins de compatibilidade com versões anteriores, a função de banco de dados público recebe REFERENCES automaticamente permissão em tipos de dados de alias criados usando sp_addtypeo . Observe que quando os tipos de dados de alias são criados usando a CREATE TYPE instrução 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 os tipos de dados timestamp, table, xml, varchar(max), nvarchar(max) ou varbinary(max) do SQL Server.

Permissões

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

Exemplos

R. Criar um tipo de dados de alias que não permita valores nulos

O exemplo a seguir cria um tipo de dados de alias chamado ssn (número do seguro social) que se baseia no tipo de dados varchar fornecido pelo SQL Server. O ssn tipo de dados é 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.

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. Criar um tipo de dados de alias que permita 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. Criar tipos de dados de alias adicionais

O exemplo a seguir cria mais dois tipos telephone de dados de alias e fax, para números 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