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'nomedotipo'

@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
  • binário, varbinary(n) e imagem
  • 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
  • dinheiro e dinheiro pequeno
  • sql_variant
  • uniqueidentifier

As aspas são necessárias em torno de todos os parâmetros que contêm espaços em branco incorporados ou sinais de pontuação. Para obter mais informações sobre 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 [ = ] 'nulltype'

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 anulabilidade padrão atual. Use a função do GETANSINULL sistema para determinar a anulabilidade 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 anulabilidade 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 de sys.types catálogo para 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 do agrupamento padrão do banco de dados aplica-se 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 automaticamente REFERENCES permissão em tipos de dados de alias criados usando sp_addtypeo . Observe quando os tipos de dados de alias são criados usando a CREATE TYPE instrução em vez de sp_addtype, não ocorre essa concessão automática.

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 à função de banco de dados db_owner ou db_ddladmin fixa.

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 de segurança social) baseado no tipo de dados varchar fornecido pelo SQL Server. O ssn tipo de dados é usado para colunas com números de segurança 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