sp_addtype (Transact-SQL)sp_addtype (Transact-SQL)

APLICA-SE A: simSQL Server nãoBanco de Dados SQL do Azure nãoAzure Synapse Analytics (SQL DW) nãoParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Cria um tipo de dados de alias.Creates an alias data type.

Importante

Este recurso está em modo de manutenção e talvez seja removido em uma versão futura do Microsoft SQL Server.This feature is in maintenance mode and may be removed in a future version of Microsoft SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam.Avoid using this feature in new development work, and plan to modify applications that currently use this feature. use Create Type em vez disso.Use CREATE TYPE instead.

Ícone de link do tópico Convenções de sintaxe de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxeSyntax

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

ArgumentosArguments

[ @typename = ] type é o nome do tipo de dados do alias.[ @typename = ] type Is the name of the alias data type. Os nomes de tipo de dados de alias devem seguir as regras para identificadores e devem ser exclusivos em cada banco de dado.Alias data type names must follow the rules for identifiers and must be unique in each database. o tipo é sysname, sem padrão.type is sysname, with no default.

[ @phystype = ] system_data_type é o tipo de dados físico ou SQL ServerSQL Server fornecido no qual o tipo de dados do alias se baseia. system_data_type é sysname, sem padrão, e pode ser um destes valores:[ @phystype = ] system_data_type Is the physical, or SQL ServerSQL Server supplied, data type on which the alias data type is based.system_data_type is sysname, with no default, and can be one of these values:

bigintbigint binary(n)binary(n) bitbit
char(n)char(n) datetimedatetime decimaldecimal
floatfloat imageimage intint
moneymoney nchar(n)nchar(n) ntextntext
numericnumeric nvarchar(n)nvarchar(n) realreal
smalldatetimesmalldatetime smallintsmallint smallmoneysmallmoney
sql_variantsql_variant texttext tinyinttinyint
uniqueidentifieruniqueidentifier varbinary(n)varbinary(n) varchar(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 inseridos.Quotation marks are required around all parameters that have embedded blank spaces or punctuation marks. Para obter mais informações sobre os tipos de dados disponíveis, consulte tipos (de)dados Transact-SQL.For more information about available data types, see Data Types (Transact-SQL).

nn
É um inteiro de não negativo que indica o comprimento pelo tipo de dados escolhido.Is a nonnegative integer that indicates the length for the chosen data type.

PP
É 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.Is a nonnegative integer that indicates the maximum total number of decimal digits that can be stored, both to the left and to the right of the decimal point. Para obter mais informações, consulte decimal e numeric (Transact-SQL).For more information, see decimal and numeric (Transact-SQL).

ss
É 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.Is a nonnegative integer that indicates the maximum number of decimal digits that can be stored to the right of the decimal point, and it must be less than or equal to the precision. Para obter mais informações, consulte decimal e numeric (Transact-SQL).For more information, see decimal and numeric (Transact-SQL).

[ @nulltype = ] 'null_type' indica a maneira como o tipo de dados de alias manipula valores nulos.[ @nulltype = ] 'null_type' Indicates the way the alias data type handles null values. null_type é varchar ( 8 ) , com um padrão de NULL e deve ser colocado entre aspas simples (' NULL ', ' NOT NULL ' ou ' NONULL ').null_type is varchar( 8 ), with a default of NULL, and must be enclosed in single quotation marks ('NULL', 'NOT NULL', or 'NONULL'). Se null_type não for definido explicitamente por sp_addtype, ele será definido como a nulidade padrão atual.If null_type is not explicitly defined by sp_addtype, it is set to the current default nullability. Use a função de sistema GETANSINULL para determinar a nulabilidade padrão atual.Use the GETANSINULL system function to determine the current default nullability. Isso pode ser ajustado usando a instrução SET ou ALTER DATABASE.This can be adjusted by using the SET statement or ALTER DATABASE. A nulabilidade deve ser definida explicitamente.Nullability should be explicitly defined. Se @phystype for bite @nulltype não for especificado, o padrão será NOT NULL.If @phystype is bit, and @nulltype is not specified, the default is NOT NULL.

Observação

O parâmetro null_type define apenas a nulidade padrão para esse tipo de dados.The null_type parameter only defines the default nullability for this data type. 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.If nullability is explicitly defined when the alias data type is used during table creation, it takes precedence over the defined nullability. Para obter mais informações, consulte ALTER (Table Transact-) SQL e CREATE TABLE (Transact-)SQL.For more information, see ALTER TABLE (Transact-SQL) and CREATE TABLE (Transact-SQL).

Valores do código de retornoReturn Code Values

0 (êxito) ou 1 (falha)0 (success) or 1 (failure)

Conjuntos de resultadosResult Sets

NenhumNone

ComentáriosRemarks

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.An alias data type name must be unique in the database, but alias data types with different names can have the same definition.

A execução de sp_addtype cria um tipo de dados de alias que aparece na exibição do catálogo Sys. Types para um banco de dado específico.Executing sp_addtype creates an alias data type that appears in the sys.types catalog view for a specific database. Se o tipo de dados do alias precisar estar disponível em todos os novos bancos de dado definidos pelo usuário, adicione-o ao modelo.If the alias data type must be available in all new user-defined databases, add it to model. 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.After an alias data type is created, you can use it in CREATE TABLE or ALTER TABLE, and also bind defaults and rules to the alias data type. Todos os tipos de dados de alias escalares criados usando sp_addtype estão contidos no esquema dbo .All scalar alias data types that are created by using sp_addtype are contained in the dbo schema.

Os tipos de dados de alias herdam a ordenação padrão do banco de dados.Alias data types inherit the default collation of the database. Os agrupamentos de colunas e variáveis de tipos de alias são definidos nas instruções Transact-SQLTransact-SQL CREATE TABLE, ALTER TABLE e DECLARE @local_variable .The collations of columns and variables of alias types are defined in the Transact-SQLTransact-SQL CREATE TABLE, ALTER TABLE and DECLARE @local_variable statements. A alteração da ordenação padrão do banco de dados aplica-se apenas a novas colunas e variáveis do tipo; isso não altera a ordenação das existentes.Changing the default collation of the database applies only to new columns and variables of the type; it does not change the collation of existing ones.

Importante

Para fins de compatibilidade com versões anteriores, a função de banco de dados pública recebe automaticamente a permissão REFERENCES em tipos de dado de alias que são criados usando sp_addtype.For backward compatibility purposes, the public database role is automatically granted REFERENCES permission on alias data types that are created by using sp_addtype. Observação Quando tipos de dados de alias são criados usando a instrução CREATE TYPE em vez de sp_addtype, nenhuma concessão automática ocorre.Note when alias data types are created by using the CREATE TYPE statement instead of sp_addtype, no such automatic grant occurs.

Tipos de dados de alias não podem ser definidos usando os tipos de dados timestampSQL ServerSQL Server, tabela, XML, varchar (max) , nvarchar (max) ou varbinary (max) .Alias data types cannot be defined by using the SQL ServerSQL Server timestamp, table, xml, varchar(max), nvarchar(max) or varbinary(max) data types.

PermissõesPermissions

Requer associação na função de banco de dados fixa db_owner ou db_ddladmin .Requires membership in the db_owner or db_ddladmin fixed database role.

ExemplosExamples

A.A. Criando um tipo de dados de alias que não permite valores nulosCreating an alias data type that does not allow for null values

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 ServerSQL Server.The following example creates an alias data type named ssn (social security number) that is based on the SQL ServerSQL Server-supplied varchar data type. O tipo de dados ssn é usado para colunas que contém números de previdência social de 11 dígitos (999-99-9999).The ssn data type is used for columns holding 11-digit social security numbers (999-99-9999). A coluna não pode ser NULL.The column cannot be NULL.

Observe que varchar(11) está entre aspas simples porque contém pontuação (parênteses).Notice that varchar(11) is enclosed in single quotation marks because it contains punctuation (parentheses).

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

B.B. Criando um tipo de dados de alias que permite valores nulosCreating an alias data type that allows for null values

O exemplo a seguir cria um tipo de dados de alias (baseado em datetime) chamado birthday que permite valores nulos.The following example creates an alias data type (based on datetime) named birthday that allows for null values.

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

C.C. Criando tipos de dados de alias adicionaisCreating additional alias data types

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.The following example creates two additional alias data types, telephone and fax, for both domestic and international telephone and fax numbers.

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

Consulte tambémSee Also

Mecanismo de banco de dados procedimentos (armazenados Transact-SQL) Database Engine Stored Procedures (Transact-SQL)
CREATE TYPE (Transact-SQL) CREATE TYPE (Transact-SQL)
CREATE DEFAULT (Transact-SQL) CREATE DEFAULT (Transact-SQL)
CREATE RULE (Transact-SQL) CREATE RULE (Transact-SQL)
sp_bindefault (Transact-SQL) sp_bindefault (Transact-SQL)
sp_bindrule (Transact-SQL) sp_bindrule (Transact-SQL)
sp_droptype (Transact-SQL) sp_droptype (Transact-SQL)
sp_rename (Transact-SQL) sp_rename (Transact-SQL)
sp_unbindefault (Transact-SQL) sp_unbindefault (Transact-SQL)
sp_unbindrule (Transact-SQL) sp_unbindrule (Transact-SQL)
Procedimentos armazenados do sistema (Transact-SQL)System Stored Procedures (Transact-SQL)