sys.types (Transact-SQL)

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLAzure Synapse AnalyticsAnalytics Platform System (PDW)Koncový bod analýzy SQL v Microsoft FabricSklad v Microsoft FabricDatabáze SQL v Microsoft Fabric

Obsahuje řádek pro každý systém a uživatelem definovaný typ.

Název sloupce Datový typ Description
name sysname Název typu. Je jedinečný v rámci schématu.
system_type_id tinyint ID interního typu systému.
user_type_id int Identifikace typu. Je v databázi jedinečný.

Typy assemblerů CLR jako hierarchyid, geometry a geography budou mít odlišné system_type_id, a lze je identifikovat pomocí is_assembly_type. Typ dat sysname je interní typ založený na nvarchar.
schema_id int ID schématu, ke kterému typ patří.
principal_id int Identifikaci jednotlivého vlastníka se liší od vlastníka schématu. Ve výchozím nastavení jsou objekty obsažené ve schématu vlastněny vlastníkem schématu. Alternativního vlastníka však lze určit pomocí příkazu ALTER AUTHORIZATION ke změně vlastnictví.

NULL pokud není žádný jiný individuální vlastník.
max_length smallint Maximální délka (v bajtech) typu.

- 1 = Typ dat sloupců je varchar(max),nvarchar(max),varbinary(max) nebo xml.
U textových sloupců bude hodnota max_length 16.
precision tinyint Maximální přesnost typu, pokud je založen na číslech; jinak 0.
scale tinyint Maximální škála typu, pokud je numericky založený; jinak 0.
collation_name sysname Název třídění typu, pokud je založeno na znacích; Jinak NULL.
is_nullable bit Typ je nulovatelný.
is_user_defined bit 1 = Uživatelem definovaný typ.

0 = Systémový datový typ SQL Serveru.
is_assembly_type bit 1 = Implementace typu je definována v assembleru CLR.

0 = Typ je založen na datovém typu SQL Server systému.
default_object_id int ID samostatného výchozího nastavení, které je vázáno na typ pomocí sp_bindefault.

0 = Neexistuje žádný výchozí stav.
rule_object_id int ID samostatného pravidla, které je vázáno na typ pomocí sp_bindrule.

0 = Žádné pravidlo neexistuje.
is_table_type bit Označuje, že typ je tabulka.

Povolení

Viditelnost metadat v zobrazeních katalogu je omezena na položky, které uživatel vlastní, nebo na které má uživatel udělené určité oprávnění. Další informace naleznete v kapitole Konfigurace viditelnosti metadat.

Příklady použití

Získání podrobností o sloupci pro tabulku

Pokud chcete získat metadata pro sloupce v tabulce, můžete použít následující kód:

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