Dela via


sys.types (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)SQL-analysslutpunkt i Microsoft FabricLager i Microsoft FabricSQL-databas i Microsoft Fabric

Innehåller en rad för varje system och användardefinierad typ.

Kolumnnamn Datatyp Description
name sysname Namnet på typen. Är unik inom schemat.
system_type_id tinyint ID för den interna systemtypen.
user_type_id int ID av typen. Är unikt i databasen.

CLR-sammansättningstyper såsom hierarchyid, geometry och geography kommer att ha olika system_type_id, och kan identifieras med .is_assembly_type Sysname-datatypen är en intern datatyp baserad på nvarchar.
schema_id int ID för schemat som typen tillhör.
principal_id int ID:t för den enskilda ägaren är annorlunda än schemaägaren. Som standard ägs schemainnehållna objekt av schemaägaren. En alternativ ägare kan dock anges genom att använda ALTER AUTHORIZATION-satsen för att byta ägare.

NULL Om det inte finns någon alternativ individuell ägare.
max_length smallint Maximal längd (i byte) av typen.

- 1 = Kolumndatatypen är varchar(max),nvarchar(max),varbinär(max) eller xml.
För textkolumnermax_length blir värdet 16.
precision tinyint Maxprecision av typen om den är numerisk; annars 0.
scale tinyint Maxskala av typen om den är numerisk; annars 0.
collation_name sysname Namnet på sorteringen av typen om den är teckenbaserad; annars . NULL
is_nullable bit Typen är nullbar.
is_user_defined bit 1 = Användardefinierad typ.

0 = SQL Server-systemdatatyp.
is_assembly_type bit 1 = Implementering av typen definieras i en CLR-sammansättning.

0 = Typen baseras på en SQL Server-systemdatatyp.
default_object_id int ID för den fristående standarden som är bunden till typen genom att använda sp_bindefault.

0 = Ingen standard existerar.
rule_object_id int ID för den fristående regeln som är bunden till typen genom att använda sp_bindrule.

0 = Ingen regel finns.
is_table_type bit Indikerar att typen är en tabell.

Permissions

Synligheten för metadata i katalogvyer är begränsad till skyddsbara objekt som en användare antingen äger eller som användaren har beviljats viss behörighet för. För mer information, se inställningar för metadatasynlighet.

Exempel på användning

Hämta kolumninformation för en tabell

Om du vill hämta metadata för kolumner i en tabell kan du använda följande kod:

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