Condividi tramite


sys.types (Transact-SQL)

Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW) Endpoint di analisi SQL in Microsoft Fabric Warehouse in Microsoft Fabric

Contiene una riga per ogni tipo di sistema e definito dall'utente.

Nome colonna Tipo di dati Descrizione
name sysname Nome del tipo. Valore univoco all'interno dello schema.
system_type_id tinyint ID del tipo di sistema interno.
user_type_id int ID del tipo. Valore univoco all'interno del database.

I tipi di assembly CLR, ad esempio hierarchyid, geometry e geography, avranno un oggetto diverso system_type_ide possono essere identificati usando is_assembly_type. Il tipo di dati sysname è un tipo di dati interno basato su nvarchar.
schema_id int ID dello schema a cui appartiene il tipo.
principal_id int ID del proprietario, se diverso dal proprietario dello schema. Per impostazione predefinita, gli oggetti contenuti nello schema appartengono al proprietario dello schema stesso. È tuttavia possibile specificare un altro proprietario modificando la proprietà mediante l'istruzione ALTER AUTHORIZATION.

NULL se non esiste un proprietario individuale alternativo.
max_length smallint Lunghezza massima (in byte) del tipo.

-1 = Il tipo di dati della colonna è varchar(max), nvarchar(max), varbinary(max)o xml.
Per le colonne di testo , il max_length valore sarà 16.
precision tinyint Precisione massima del tipo se numerica. In caso contrario 0.
scale tinyint Scala massima del tipo se numerica. In caso contrario 0.
collation_name sysname Nome delle regole di confronto del tipo se è basato su caratteri; altro saggio, NULL.
is_nullable bit Il tipo ammette valori Null.
is_user_defined bit 1 = Tipo definito dall'utente.

0 = Tipo di dati di sistema di SQL Server.
is_assembly_type bit 1 = L'implementazione del tipo è definita in un assembly CLR.

0 = Il tipo è basato su un tipo di dati di sistema di SQL Server.
default_object_id int ID dell'impostazione predefinita autonoma associata al tipo tramite sp_bindefault.

0 = Nessun valore predefinito.
rule_object_id int ID della regola autonoma associata al tipo tramite sp_bindrule.

0 = Nessuna regola esiste.
is_table_type bit Indica che il tipo è una tabella.

Autorizzazioni

La visibilità dei metadati nelle viste del catalogo è limitata alle entità a protezione diretta di cui l'utente è proprietario o per le quali dispone di autorizzazioni. Per altre informazioni, vedere Metadata Visibility Configuration.

Esempi di utilizzo

Ottenere i dettagli della colonna per una tabella

Per ottenere i metadati per le colonne in una tabella, è possibile usare il codice seguente:

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');