Compartir a través de


sys.types (Transact-SQL)

Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Punto de conexión de análisis SQL en Microsoft Fabric Almacenamiento en Microsoft Fabric

Contiene una fila por cada tipo del sistema y definido por el usuario.

Nombre de la columna Tipo de datos Descripción
name sysname Nombre del tipo. Es exclusivo en el esquema.
system_type_id tinyint Identificador del tipo del sistema interno.
user_type_id int Id. del tipo. Es único en la base de datos.

Los tipos de ensamblados CLR, como hierarchyid, geometry y geography, tendrán un valor diferente system_type_idy se pueden identificar mediante is_assembly_type. El tipo de datos sysname es interno y se basa en nvarchar.
schema_id int Id. del esquema al que pertenece el tipo.
principal_id int Id. del propietario individual si es distinto al propietario del esquema. De forma predeterminada, los objetos contenidos en el esquema pertenecen al propietario del esquema. No obstante, es posible especificar un propietario alternativo mediante la instrucción ALTER AUTHORIZATION para cambiar la propiedad.

NULL si no hay ningún propietario individual alternativo.
max_length smallint Longitud máxima del tipo, en bytes.

-1 = El tipo de datos de columna es varchar(max), nvarchar(max), varbinary(max)o xml.
Para las columnas de texto , el max_length valor será 16.
precision tinyint Precisión máxima del tipo si está basado en numerales; de lo contrario, es 0.
scale tinyint Escala máxima del tipo si está basado en numerales; de lo contrario, es 0.
collation_name sysname Nombre de la intercalación del tipo si está basado en caracteres; otros sabios, NULL.
is_nullable bit El tipo admite valores NULL.
is_user_defined bit 1 = Tipo definido por el usuario.

0 = Tipo de datos del sistema de SQL Server.
is_assembly_type bit 1 = La implementación del tipo se define en un ensamblado CLR.

0 = El tipo se basa en un tipo de datos del sistema de SQL Server.
default_object_id int Identificador del valor predeterminado independiente que está enlazado al tipo mediante sp_bindefault.

0 = No existe ningún valor predeterminado.
rule_object_id int Identificador de la regla independiente que está enlazada al tipo mediante sp_bindrule.

0 = No existe ninguna regla.
is_table_type bit Indica que el tipo es una tabla.

Permisos

La visibilidad de los metadatos en las vistas de catálogo se limita a los elementos protegibles y que son propiedad de un usuario o sobre los que el usuario ha recibido algún permiso. Para obtener más información, consulte Metadata Visibility Configuration.

Ejemplos de uso

Obtención de detalles de columna para una tabla

Para obtener metadatos para las columnas de una tabla, puede usar el código siguiente:

CREATE TABLE dbo.[sample] (
    id INT NOT NULL
    ,col1 VARBINARY(10) NULL
    )
GO

SELECT c.[name] AS column_name
    ,t.[name] AS [type_name]
    ,c.[max_length]
    ,c.[precision]
    ,c.[scale]
FROM sys.columns c
INNER JOIN sys.types t ON c.user_type_id = t.user_type_id
WHERE object_id = object_id('dbo.sample');