TYPE_NAME (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Devuelve el nombre de tipo no calificado de un Id. de tipo específico.

Convenciones de sintaxis de Transact-SQL

Sintaxis

TYPE_NAME ( type_id )   

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.

Argumentos

type_id
Es el identificador del tipo que se va a utilizar. type_id es de tipo int y puede hacer referencia a un tipo de cualquier esquema al que el autor de la llamada tenga permiso de acceso.

Tipos de valor devuelto

sysname

Excepciones

Devuelve NULL si se produce un error o si el autor de la llamada no tiene permiso para ver el objeto.

En SQL Server, un usuario solo puede ver los metadatos de elementos protegibles que posea o para los que se le haya concedido permiso. Esto significa que las funciones integradas de emisión de metadatos, como TYPE_NAME, pueden devolver NULL si el usuario no tiene ningún permiso para el objeto. Para obtener más información, consulte Metadata Visibility Configuration.

Comentarios

TYPE_NAME devolverá un NULL cuando type_id no sea válido o cuando el autor de la llamada no cuente con los permisos necesarios para hacer referencia al tipo.

TYPE_NAME funciona con tipos de datos de sistema así como con tipos de datos definidos por el usuario. El tipo puede estar contenido en cualquier esquema, pero siempre se devuelve un nombre de tipo no calificado. Esto significa que el nombre no tiene el prefijo schema.

Las funciones del sistema se pueden usar en la lista de selección, en la cláusula WHERE y en cualquier lugar donde se permita una expresión. Para más información, vea Expresiones (Transact-SQL) y WHERE (Transact-SQL).

Ejemplos

El ejemplo siguiente devuelve el nombre del objeto, de la columna y del tipo perteneciente a cada columna de la tabla Vendor de la base de datos AdventureWorks2022.

SELECT o.name AS obj_name, c.name AS col_name,  
       TYPE_NAME(c.user_type_id) AS type_name  
FROM sys.objects AS o   
JOIN sys.columns AS c  ON o.object_id = c.object_id  
WHERE o.name = 'Vendor'  
ORDER BY col_name;  
GO  

El conjunto de resultados es el siguiente:

obj_name        col_name                  type_name
--------------- ------------------------ --------------
Vendor          AccountNumber            AccountNumber
Vendor          ActiveFlag               Flag
Vendor          BusinessEntityID         int
Vendor          CreditRating             tinyint
Vendor          ModifiedDate             datetime
Vendor          Name                     Name
Vendor          PreferredVendorStatus    Flag
Vendor          PurchasingWebServiceURL  nvarchar

(8 row(s) affected)

Ejemplos: Azure Synapse Analytics y Sistema de la plataforma de análisis (PDW)

En este siguiente ejemplo se devuelve el valor de TYPE ID para el tipo de datos del sistema con identificador 1.

SELECT TYPE_NAME(36) AS Type36, TYPE_NAME(239) AS Type239;  
GO  

Para ver una lista de tipos, consulte sys.types.

SELECT * FROM sys.types;  
GO  

Vea también

TYPE_ID (Transact-SQL)
TYPEPROPERTY (Transact-SQL)
sys.types (Transact-SQL)
Funciones de metadatos (Transact-SQL)