Delen via


sys.columns (Transact-SQL)

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-eindpunt in Microsoft FabricWarehouse in Microsoft Fabric

Retourneert een rij voor elke kolom van een object met kolommen, zoals weergaven of tabellen. De volgende lijst bevat de objecttypen met kolommen:

  • Assemblyfuncties met tabelwaarde (FT)
  • Inline SQL-functies met waarde voor tabellen (IF)
  • Interne tabellen (IT)
  • Systeemtabellen (S)
  • SQL-functies met tabelwaarde (TF)
  • Gebruikerstabellen (U)
  • Weergaven (V)
Kolomnaam Gegevenstype Beschrijving
object_id Int Id van het object waartoe deze kolom behoort.
name sysname Naam van de kolom. Is uniek binnen het object.
column_id Int Id van de kolom. Is uniek binnen het object. Kolom-id's zijn mogelijk niet opeenvolgend.
system_type_id tinyint Id van het systeemtype van de kolom.
user_type_id Int Id van het type kolom zoals gedefinieerd door de gebruiker. Als u de naam van het type wilt retourneren, voegt u zich toe aan de catalogusweergave sys.types in deze kolom.
max_length smallint Maximale lengte (in bytes) van de kolom.

-1 = Kolomgegevenstype is varchar(max), nvarchar(max), varbinary(max)of xml-.

Voor tekst-, ntekst- en afbeeldingskolommen is max_length de 16 waarde (alleen de aanwijzer van 16 bytes) of de waarde die is ingesteld door sp_tableoption 'text in row'.
precision tinyint Precisie van de kolom indien numeriek; anders, 0.
scale tinyint Schaal van kolom indien numeriek; anders, 0.
collation_name sysname Naam van de sortering van de kolom als deze is gebaseerd op tekens; anders NULL.
is_nullable bit 1 = Kolom is null-waarde
0 = Kolom kan niet null worden
is_ansi_padded bit 1 = Kolom gebruikt ANSI_PADDING ON gedrag als teken, binair of variant

0 = Kolom is geen teken, binair of variant
is_rowguidcol bit 1 = Kolom is een gedeclareerd ROWGUIDCOL
is_identity bit 1 = Kolom heeft identiteitswaarden
is_computed bit 1 = Kolom is een berekende kolom
is_filestream bit 1 = Kolom is een FILESTREAM-kolom
is_replicated bit 1 = Kolom wordt gerepliceerd
is_non_sql_subscribed bit 1 = Kolom heeft een niet-SQL Server-abonnee
is_merge_published bit 1 = Kolom wordt samenvoeg gepubliceerd
is_dts_replicated bit 1 = Kolom wordt gerepliceerd met behulp van SSIS
is_xml_document bit 1 = Inhoud is een volledig XML-document

0 = Inhoud is een documentfragment of het kolomgegevenstype is geen XML
xml_collection_id Int Niet-nul als het gegevenstype van de kolom XML is en de XML is getypt. De waarde is de id van de verzameling die de xml-schemanaamruimte van de kolom valideert

0 = Geen XML-schemaverzameling
default_object_id Int Id van het standaardobject, ongeacht of het een zelfstandig object is sp_bindefault, of een inlinebeperking op kolomniveau DEFAULT . De parent_object_id kolom van een standaardobject op inlinekolomniveau is een verwijzing naar de tabel zelf.

0 = Geen standaardwaarde
rule_object_id Int Id van de zelfstandige regel die is gebonden aan de kolom met behulp van sys.sp_bindrule.

0 = Geen zelfstandige regel. Zie CHECK voor beperkingen op kolomniveau.
is_sparse bit 1 = Kolom is een sparse kolom. Zie Sparse-kolommen gebruiken voor meer informatie.
is_column_set bit 1 = Kolom is een kolomset. Zie Sparse-kolommen gebruiken voor meer informatie.
generated_always_type tinyint Hiermee wordt aangegeven wanneer de kolomwaarde wordt gegenereerd (is altijd 0 voor kolommen in systeemtabellen).

Van toepassing op: SQL Server 2016 (13.x) en latere versies en SQL Database.

0 = NOT_APPLICABLE
1 = AS_ROW_START
2 = AS_ROW_END

Van toepassing op: SQL Server 2022 (16.x) en latere versies en SQL Database.

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

Zie Tijdelijke tabellenvoor meer informatie.
generated_always_type_desc nvarchar(60) Tekstbeschrijving van de generated_always_type waarde (altijd NOT_APPLICABLE voor kolommen in systeemtabellen)

Van toepassing op: SQL Server 2016 (13.x) en latere versies en SQL Database.

NOT_APPLICABLE
AS_ROW_START
AS_ROW_END

Van toepassing op: SQL Server 2022 (16.x) en latere versies en SQL Database.

AS_TRANSACTION_ID_START
AS_TRANSACTION_ID_END
AS_SEQUENCE_NUMBER_START
AS_SEQUENCE_NUMBER_END
encryption_type Int Type versleuteling:

1 = Deterministische versleuteling
2 = Gerandomiseerde versleuteling

Van toepassing op: SQL Server 2016 (13.x) en latere versies en SQL Database
encryption_type_desc nvarchar(64) Beschrijving van versleutelingstype:

RANDOMIZED
DETERMINISTIC

Van toepassing op: SQL Server 2016 (13.x) en latere versies en SQL Database
encryption_algorithm_name sysname Naam van versleutelingsalgoritmen. Alleen AEAD_AES_256_CBC_HMAC_SHA_512 wordt ondersteund.

Van toepassing op: SQL Server 2016 (13.x) en latere versies en SQL Database
column_encryption_key_id Int Id van de kolomversleutelingssleutel (CEK).

Van toepassing op: SQL Server 2016 (13.x) en latere versies en SQL Database
column_encryption_key_database_name sysname De naam van de database waarin de kolomversleutelingssleutel bestaat als deze verschilt van de database van de kolom. NULL als de sleutel bestaat in dezelfde database als de kolom.

Van toepassing op: SQL Server 2016 (13.x) en latere versies en SQL Database
is_hidden bit Geeft aan of de kolom verborgen is:

0 = normale, niet-verborgen, zichtbare kolom
1 = verborgen kolom

Van toepassing op: SQL Server 2016 (13.x) en latere versies en SQL Database
is_masked bit Geeft aan of de kolom wordt gemaskeerd door dynamische gegevensmaskering:

0 = normale, niet-gemaskeerde kolom
1 = kolom is gemaskeerd

Van toepassing op: SQL Server 2016 (13.x) en latere versies en SQL Database
graph_type Int Interne kolom met een set waarden. De waarden liggen tussen 1 en 8 voor grafiekkolommen en NULL voor anderen.
graph_type_desc nvarchar(60) Alleen ter informatie geïdentificeerd. Wordt niet ondersteund. Toekomstige compatibiliteit is niet gegarandeerd.
is_data_deletion_filter_column bit Geeft aan of de kolom de filterkolom voor gegevensretentie voor de tabel is.

van toepassing op: Azure SQL Edge
ledger_view_column_type Int Als dat niet het probleem is NULL, geeft u het type kolom in een grootboekweergave aan:

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

Zie Grootboekoverzicht voor meer informatie.

Van toepassing op: SQL Server 2022 (16.x) en latere versies en SQL Database
ledger_view_column_type_desc nvarchar(60) Zo niet NULL, bevat een tekstuele beschrijving van het type kolom in een grootboekweergave:

TRANSACTION_ID
SEQUENCE_NUMBER
OPERATION_TYPE
OPERATION_TYPE_DESC

Van toepassing op: SQL Server 2022 (16.x) en latere versies en SQL Database
is_dropped_ledger_column bit Geeft een grootboektabelkolom aan die is verwijderd.

Van toepassing op: SQL Server 2022 (16.x) en latere versies en SQL Database
vector_dimensions Int Geeft aan hoeveel dimensies de vector heeft

Van toepassing op: SQL Server 2025 (17.x) Preview en latere versies, en SQL Database
vector_base_type Int Geeft het gegevenstype aan dat wordt gebruikt voor het opslaan van waarden voor vectordimensies.
0 = 32 bits (single-precision) float
1 = 16-bits float (halve precisie)

Van toepassing op: SQL Server 2025 (17.x) Preview en latere versies, en SQL Database
vector_base_type_desc Int Bevat de tekstbeschrijving van het gegevenstype dat wordt gebruikt voor het opslaan van waarden voor vectordimensies.

Van toepassing op: SQL Server 2025 (17.x) Preview en latere versies, en SQL Database

Machtigingen

De zichtbaarheid van de metagegevens in catalogusweergaven is beperkt tot beveiligbare items waarvan een gebruiker eigenaar is of waarvoor de gebruiker een bepaalde machtiging heeft gekregen. Zie Zichtbaarheidsconfiguratie voor metagegevensvoor meer informatie.

Voorbeelden van gebruik

Kolomdetails voor een tabel ophalen

Als u metagegevens voor kolommen in een tabel wilt ophalen, kunt u de volgende code gebruiken:

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