sp_addtype (Transact-SQL)

Crea un tipo de datos de alias.

ms189784.note(es-es,SQL.90).gifImportante:
Esta característica se quitará en una versión futura de Microsoft SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan. En su lugar, utilice CREATE TYPE.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

[ @typename= ] type

Es el nombre del tipo de datos de alias. Los nombres de los tipos de datos de alias tienen que seguir las reglas de los identificadores y deben ser exclusivos en cada base de datos. type es de tipo sysname y no tiene valor predeterminado.

[ @phystype=] system_data_type

Es el tipo de datos físico, o proporcionado por SQL Server, en el que se basa el tipo de datos de alias. system_data_type es de tipo sysname, no tiene valor predeterminado y puede tener uno de estos 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)

Se requieren comillas para delimitar los parámetros que tengan espacios o signos de puntuación incrustados. Para obtener más información acerca de los tipos de datos disponibles, vea Tipos de datos (Transact-SQL).

n

Es un entero no negativo que indica la longitud del tipo de datos elegido.

P

Es un entero no negativo que indica el número total máximo de cifras decimales que se pueden almacenar, a ambos lados del separador decimal. Para obtener más información, vea decimal y numeric (Transact-SQL).

s

Es un entero no negativo que indica el número máximo de cifras decimales que se pueden almacenar a la derecha del separador decimal, y tiene que ser menor que la precisión decimal o igual a ésta. Para obtener más información, vea decimal y numeric (Transact-SQL).

[ @nulltype = ] 'null_type'

Indica la forma en que el tipo de datos de alias trata los valores nulos. null_type es de tipo varchar(8), su valor predeterminado es NULL y tiene que estar entre comillas simples (‘NULL’, ‘NOT NULL’ o ‘NONULL’). Si no se define explícitamente null_type en sp_addtype, se establece según el criterio predeterminado actual para valores nulos. Utilice la función de sistema GETANSINULL para determinar dicho criterio. Esto se puede ajustar mediante la instrucción SET o ALTER DATABASE. El criterio para los valores nulos se tiene que definir explícitamente. Si @phystype es de tipo bit y @nulltype no se especifica, el valor predeterminado es NOT NULL.

[!NOTA] El parámetro null_type sólo define el criterio predeterminado para los valores NULL de este tipo de datos. Si se define explícitamente un criterio para los valores NULL cuando se utiliza este tipo de datos de alias durante la creación de una tabla, este criterio tendrá prioridad sobre el criterio para valores NULL definido. Para obtener más información, vea ALTER TABLE (Transact-SQL) y CREATE TABLE (Transact-SQL).

Conjuntos de resultados

Ninguno

Notas

Los nombres de los tipos de datos de alias tienen que ser exclusivos en la base de datos, pero tipos de datos de alias con distintos nombres pueden tener la misma definición.

La ejecución de sp_addtype crea un tipo de datos de alias que aparece en la vista de catálogo sys.types para una base de datos específica. Si el tipo de datos de alias tiene que estar disponible en todas las nuevas bases de datos definidas por el usuario, agréguelo a model. Después de crear un tipo de datos de alias, puede utilizarse en CREATE TABLE o ALTER TABLE, así como enlazarse a valores predeterminados y reglas. Todos los tipos de datos de alias escalares que se crean mediante sp_addtype están contenidos en el esquema dbo.

Los tipos de datos de alias heredan la intercalación predeterminada de la base de datos. La intercalación de columnas y variables de tipos de alias se definen en las instrucciones Transact-SQL CREATE TABLE, ALTER TABLE y DECLARE @local_variable. Cualquier cambio en la intercalación predeterminada de la base de datos sólo se aplica a las columnas y variables nuevas del tipo; no afecta la intercalación de los tipos existentes.

ms189784.security(es-es,SQL.90).gifNota de seguridad:
Por compatibilidad con versiones anteriores, a la función de base de datos public se le concede automáticamente el permiso REFERENCES sobre los tipos de datos de alias que se crean mediante sp_addtype. Tenga en cuenta que cuando los tipos de datos de alias se crean con la instrucción CREATE TYPE en lugar de sp_addtype, ese permiso no se concede automáticamente.

Los tipos de datos de alias no se pueden definir con los tipos de datos timestamptable, xml, varchar(max), nvarchar(max) o varbinary(max) de SQL Server.

Permisos

Requiere la pertenencia a las funciones fijas de base de datos db_owner o db_ddladmin.

Valores de código de retorno

0 (correcto) o 1 (error)

Ejemplos

A. Crear un tipo de datos de alias que no permite valores NULL

En el ejemplo siguiente se crea un tipo de datos de alias denominado ssn (número de la seguridad social) que se basa en el tipo de datos varchar proporcionado por SQL Server. El tipo de datos ssn se utiliza en columnas que almacenan números de la seguridad social de 11 cifras (999-99-9999). La columna no puede ser NULL.

Observe que varchar(11) está entre comillas simples porque contiene signos de puntuación (paréntesis).

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

A. Crear un tipo de datos de alias que permite valores NULL

En este ejemplo se crea un tipo de datos de alias (basado en el tipo de datos datetime) denominado birthday que permite valores NULL.

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

C. Crear tipos de datos de alias adicionales

En este ejemplo se crean dos tipos de datos de alias adicionales, telephone y fax, para números de teléfono y fax locales e internacionales.

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

Vea también

Referencia

Procedimientos almacenados del motor de base de datos (Transact-SQL)
CREATE TYPE (Transact-SQL)
CREATE DEFAULT (Transact-SQL)
CREATE RULE (Transact-SQL)
sp_bindefault (Transact-SQL)
sp_bindrule (Transact-SQL)
sp_droptype (Transact-SQL)
sp_rename (Transact-SQL)
sp_unbindefault (Transact-SQL)
sp_unbindrule (Transact-SQL)
Procedimientos almacenados del sistema (Transact-SQL)

Ayuda e información

Obtener ayuda sobre SQL Server 2005