Sdílet prostřednictvím


sys.columns (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

Vrátí řádek pro každý sloupec objektu, který obsahuje sloupce, například zobrazení nebo tabulky. Následující seznam obsahuje typy objektů, které mají sloupce:

  • Funkce sestavení s hodnotami tabulky (FT)
  • Vložené funkce SQL s hodnotou tabulky (KDYŽ)
  • Interní tabulky (IT)
  • Systémové tabulky (S)
  • Funkce SQL s hodnotami tabulky (TF)
  • Uživatelské tabulky (U)
  • Zobrazení (V)
Název sloupce Datový typ Popis
object_id Int ID objektu, do kterého tento sloupec patří.
name sysname Název sloupce Je v rámci objektu jedinečný.
column_id Int ID sloupce. Je v rámci objektu jedinečný. ID sloupců nemusí být sekvenční.
system_type_id tinyint ID systémového typu sloupce.
user_type_id Int ID typu sloupce definovaného uživatelem Chcete-li vrátit název typu, připojte se k zobrazení katalogu sys.types v tomto sloupci.
max_length smallint Maximální délka sloupce (v bajtech).

-1 = datový typ sloupec je varchar(max), nvarchar(max), varbinary(max)nebo xml.

U textových, ntextových a obrázkových sloupců max_length je 16 hodnota (představující pouze ukazatel na 16 bajtů) nebo hodnotu nastavenou hodnotou sp_tableoption 'text in row'.
precision tinyint Přesnost sloupce v případě číselného základu; v opačném případě . 0
scale tinyint Měřítko sloupce v případě číselného základu; v opačném případě . 0
collation_name sysname Název kolace sloupce, pokud je založen na znakech; jinak NULL.
is_nullable bit 1 = Sloupec je nullable
0 = Sloupec není nullable
is_ansi_padded bit 1 = Sloupec používá ANSI_PADDING ON chování, pokud znak, binární nebo varianta

0 = Sloupec není znak, binární nebo varianta.
is_rowguidcol bit 1 = Sloupec je deklarovaný ROWGUIDCOL
is_identity bit 1 = Sloupec obsahuje hodnoty identity.
is_computed bit 1 = Sloupec je vypočítaný sloupec.
is_filestream bit 1 = Sloupec je sloupec FILESTREAM.
is_replicated bit 1 = Sloupec se replikuje.
is_non_sql_subscribed bit 1 = Sloupec má odběratele jiného než SQL Serveru.
is_merge_published bit 1 = Sloupec se sloučí a publikuje
is_dts_replicated bit 1 = Sloupec se replikuje pomocí služby SSIS.
is_xml_document bit 1 = Obsah je úplný dokument XML.

0= Obsah je fragment dokumentu nebo datový typ sloupce není xml.
xml_collection_id Int Nenulové, pokud je datový typ sloupce xml a xml je zadán. Hodnota je ID kolekce obsahující obor názvů schématu XML sloupce.

0 = Žádná kolekce schémat XML
default_object_id Int ID výchozího objektu bez ohledu na to, jestli se jedná o samostatný objekt sp_bindefault nebo vložené omezení na úrovni DEFAULT sloupce. Sloupec parent_object_id výchozího objektu na úrovni sloupců je odkazem zpět na samotnou tabulku.

0 = Bez výchozího nastavení
rule_object_id Int ID samostatného pravidla vázaného na sloupec pomocí .sys.sp_bindrule

0 = Žádné samostatné pravidlo. Omezení na úrovni CHECK sloupce najdete v tématu sys.check_constraints.
is_sparse bit 1 = Sloupec je řídký sloupec. Další informace naleznete v tématu Použití řídkých sloupců.
is_column_set bit 1 = Sloupec je sada sloupců. Další informace naleznete v tématu Použití řídkých sloupců.
generated_always_type tinyint Identifikuje, kdy se vygeneruje hodnota sloupce (vždy 0 se používá pro sloupce v systémových tabulkách).

platí pro: SQL Server 2016 (13.x) a novější verze a SQL Database.

0 = NOT_APPLICABLE
1 = AS_ROW_START
2 = AS_ROW_END

Platí pro: SQL Server 2022 (16.x) a novější verze a SQL Database.

5 = AS_TRANSACTION_ID_START
6 = AS_TRANSACTION_ID_END
7 = AS_SEQUENCE_NUMBER_START
8 = AS_SEQUENCE_NUMBER_END

Další informace naleznete v tématu časové tabulky.
generated_always_type_desc nvarchar(60) Textový popis generated_always_type hodnoty (vždy NOT_APPLICABLE pro sloupce v systémových tabulkách)

platí pro: SQL Server 2016 (13.x) a novější verze a SQL Database.

NOT_APPLICABLE
AS_ROW_START
AS_ROW_END

Platí pro: SQL Server 2022 (16.x) a novější verze a SQL Database.

AS_TRANSACTION_ID_START
AS_TRANSACTION_ID_END
AS_SEQUENCE_NUMBER_START
AS_SEQUENCE_NUMBER_END
encryption_type Int Typ šifrování:

1 = Deterministické šifrování
2 = Randomizované šifrování

Platí pro: SQL Server 2016 (13.x) a novější verze a SQL Database
encryption_type_desc nvarchar(64) Popis typu šifrování:

RANDOMIZED
DETERMINISTIC

Platí pro: SQL Server 2016 (13.x) a novější verze a SQL Database
encryption_algorithm_name sysname Název šifrovacího algoritmu. Podporuje se jenom AEAD_AES_256_CBC_HMAC_SHA_512.

Platí pro: SQL Server 2016 (13.x) a novější verze a SQL Database
column_encryption_key_id Int ID šifrovacího klíče sloupce (CEK).

Platí pro: SQL Server 2016 (13.x) a novější verze a SQL Database
column_encryption_key_database_name sysname Název databáze, kde šifrovací klíč sloupce existuje, pokud se liší od databáze sloupce. NULL pokud klíč existuje ve stejné databázi jako sloupec.

Platí pro: SQL Server 2016 (13.x) a novější verze a SQL Database
is_hidden bit Označuje, jestli je sloupec skrytý:

0 = běžný, neskrytá, viditelný sloupec
1 = skrytý sloupec

Platí pro: SQL Server 2016 (13.x) a novější verze a SQL Database
is_masked bit Určuje, jestli je sloupec maskovaný dynamickým maskováním dat:

0 = běžný, nezamaskovaný sloupec
1 = sloupec je maskovaný

Platí pro: SQL Server 2016 (13.x) a novější verze a SQL Database
graph_type Int Interní sloupec se sadou hodnot Hodnoty jsou mezi 1 sloupci grafu a 8NULL pro ostatní.
graph_type_desc nvarchar(60) Určeno pouze pro informační účely. Není podporováno. Budoucí kompatibilita není zaručena.
is_data_deletion_filter_column bit Určuje, jestli je sloupec sloupcem filtru uchovávání dat pro tabulku.

platí pro: Azure SQL Edge
ledger_view_column_type Int Pokud ne NULL, označuje typ sloupce v zobrazení hlavní knihy:

1 = TRANSACTION_ID
2 = SEQUENCE_NUMBER
3 = OPERATION_TYPE
4 = OPERATION_TYPE_DESC

Další informace najdete v tématu Přehled registru.

Platí pro: SQL Server 2022 (16.x) a novější verze a SQL Database
ledger_view_column_type_desc nvarchar(60) Pokud ne NULL, obsahuje textový popis typu sloupce v zobrazení hlavní knihy:

TRANSACTION_ID
SEQUENCE_NUMBER
OPERATION_TYPE
OPERATION_TYPE_DESC

Platí pro: SQL Server 2022 (16.x) a novější verze a SQL Database
is_dropped_ledger_column bit Označuje sloupec tabulky registru, který byl vyřazen.

Platí pro: SQL Server 2022 (16.x) a novější verze a SQL Database
vector_dimensions Int Ukazuje, kolik rozměrů vektor má.

Platí na: SQL Server 2025 (17.x) a novější verze a SQL Database
vector_base_type tinyint Označuje datový typ použitý k ukládání hodnot dimenzí vektorů.

0 = 32bitový (jednosměrný) plovák
1 = 16bitová (poloviční přesnost) float 1

Platí na: SQL Server 2025 (17.x) a novější verze a SQL Database
vector_base_type_desc nvarchar(10) Obsahuje textový popis datového typu použitého k ukládání hodnot dimenzí vektoru.

Platí na: SQL Server 2025 (17.x) a novější verze a SQL Database

1 Pro více informací viz Formát s plovoucí desetinnou čárkou s poloviční přesností.

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 tématu Konfigurace viditelnosti metadat.

Příklady použití

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

Pro získání metadat pro sloupce v tabulce použijte následující kód:

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

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