sys.columns (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL Analytics-Endpunkt in Microsoft Fabric Warehouse in Microsoft Fabric
Gibt eine Zeile für jede Spalte eines Objekts zurück, das Spalten besitzt, z. B. Sichten oder Tabellen. Die folgende Liste enthält die Objekttypen mit Spalten:
- Assembly-Tabellenwertfunktionen (FT)
- Inline-SQL-Tabellenwertfunktionen (IF)
- Interne Tabellen (IT)
- Systemtabellen (S)
- SQL-Tabellenwertfunktionen (TF)
- Benutzertabellen (U)
- Sichten (V)
Spaltenname | Datentyp | BESCHREIBUNG |
---|---|---|
object_id |
int | Die ID des Objekts, zu dem diese Spalte gehört. |
name |
sysname | Name der Spalte. Ist eindeutig innerhalb des Objekts. |
column_id |
int | ID der Spalte. Ist eindeutig innerhalb des Objekts. Spalten-IDs sind möglicherweise nicht sequenziell. |
system_type_id |
tinyint | Die ID des Systemtyps der Spalte. |
user_type_id |
int | Die ID des vom Benutzer definierten Typs der Spalte. Stellen Sie einen Join mit der sys.types -Katalogsicht für diese Spalte her, um den Namen des Typs zurückzugeben. |
max_length |
smallint | Maximale Länge (in Byte) für die Spalte.-1 = Spaltendatentyp ist varchar(max), nvarchar(max), varbinary(max) oder xml.Für Text-, ntext- und Bildspalten ist 16 der max_length Wert (nur der 16-Byte-Zeiger) oder der von sp_tableoption 'text in row' . |
precision |
tinyint | Genauigkeit der Spalte, wenn numerisch basiert; andernfalls . 0 |
scale |
tinyint | Skalierung der Spalte, wenn numerisch basiert; andernfalls . 0 |
collation_name |
sysname | Name der Sortierung der Spalte, wenn diese zeichenbasiert ist, andernfalls NULL . |
is_nullable |
bit | 1 = Spalte ist nullwertebar.0 = Spalte kann nicht null sein. |
is_ansi_padded |
bit | 1 = Spalte verwendet ANSI_PADDING ON Verhalten, wenn Zeichen, Binärdatei oder Variante0 = Spalte ist kein Zeichen, keine Binärdatei oder keine Variante. |
is_rowguidcol |
bit | 1 = Spalte ist eine deklarierte ROWGUIDCOL |
is_identity |
bit | 1 = Spalte hat Identitätswerte |
is_computed |
bit | 1 = Spalte ist eine berechnete Spalte. |
is_filestream |
bit | 1 = Spalte ist eine FILESTREAM-Spalte |
is_replicated |
bit | 1 = Spalte wird repliziert |
is_non_sql_subscribed |
bit | 1 = Spalte hat einen Nicht-SQL Server-Abonnent |
is_merge_published |
bit | 1 = Spalte wird zusammengeführt |
is_dts_replicated |
bit | 1 = Spalte wird mithilfe von SSIS repliziert |
is_xml_document |
bit | 1 = Inhalt ist ein vollständiges XML-Dokument.0 = Inhalt ist ein Dokumentfragment, oder der Spaltendatentyp ist keine XML |
xml_collection_id |
int | Ungleich 0, wenn der Datentyp der Spalte xml lautet und der XML-Code typisiert ist. Der Wert ist die ID der Auflistung, die den validierenden XML-Schemanamespace der Spalte enthält.0 = Keine XML-Schemaauflistung |
default_object_id |
int | ID des Standardobjekts, unabhängig davon, ob es sich um ein eigenständiges Objekt sp_bindefault oder eine Inline-Einschränkung auf Spaltenebene DEFAULT handelt. Die parent_object_id-Spalte eines DEFAULT-Inlineobjekts ist ein Verweis auf die Tabelle selbst.0 = Kein Standard |
rule_object_id |
int | ID der eigenständigen Regel, die mithilfe der Spalte gebunden ist sys.sp_bindrule. 0 = Keine eigenständige Regel. Informationen zu Einschränkungen auf Spaltenebene CHECK finden Sie unter sys.check_constraints. |
is_sparse |
bit | 1 = Spalte ist eine geringe Spalte. Weitere Informationen finden Sie unter Verwenden von Spalten mit geringem Zeitbedarf. |
is_column_set |
bit | 1 = Spalte ist ein Spaltensatz. Weitere Informationen finden Sie unter Verwenden von Spalten mit geringem Zeitbedarf. |
generated_always_type |
tinyint | Gibt an, wann der Spaltenwert generiert wird (ist immer 0 für Spalten in Systemtabellen).Gilt für: SQL Server 2016 (13.x) und spätere Versionen sowie SQL-Datenbank. 0 = NOT_APPLICABLE 1 = AS_ROW_START 2 = AS_ROW_END Gilt für: SQL Server 2022 (16.x) und höhere Versionen und SQL-Datenbank. 5 = AS_TRANSACTION_ID_START 6 = AS_TRANSACTION_ID_END 7 = AS_SEQUENCE_NUMBER_START 8 = AS_SEQUENCE_NUMBER_END Weitere Informationen finden Sie unter Temporale Tabellen (relationale Datenbanken). |
generated_always_type_desc |
nvarchar(60) | Textbeschreibung des generated_always_type Werts (immer NOT_APPLICABLE für Spalten in Systemtabellen)Gilt für: SQL Server 2016 (13.x) und spätere Versionen sowie SQL-Datenbank. NOT_APPLICABLE AS_ROW_START AS_ROW_END Gilt für: SQL Server 2022 (16.x) und höhere Versionen und SQL-Datenbank. AS_TRANSACTION_ID_START AS_TRANSACTION_ID_END AS_SEQUENCE_NUMBER_START AS_SEQUENCE_NUMBER_END |
encryption_type |
int | Verschlüsselungstyp:1 = Deterministische Verschlüsselung2 = Zufällige VerschlüsselungGilt für: SQL Server 2016 (13.x) und höhere Versionen und SQL-Datenbank |
encryption_type_desc |
nvarchar(64) | Beschreibung des Verschlüsselungstyps:RANDOMIZED DETERMINISTIC Gilt für: SQL Server 2016 (13.x) und höhere Versionen und SQL-Datenbank |
encryption_algorithm_name |
sysname | Name des Verschlüsselungsalgorithmus. Nur AEAD_AES_256_CBC_HMAC_SHA_512 wird unterstützt.Gilt für: SQL Server 2016 (13.x) und höhere Versionen und SQL-Datenbank |
column_encryption_key_id |
int | ID des Spaltenverschlüsselungsschlüssels (CEK). Gilt für: SQL Server 2016 (13.x) und höhere Versionen und SQL-Datenbank |
column_encryption_key_database_name |
sysname | Der Name der Datenbank, in der der Spaltenverschlüsselungsschlüssel vorhanden ist, wenn sie sich von der Datenbank der Spalte unterscheidet. NULL , wenn der Schlüssel in derselben Datenbank wie die Spalte vorhanden ist.Gilt für: SQL Server 2016 (13.x) und höhere Versionen und SQL-Datenbank |
is_hidden |
bit | Gibt an, ob die Spalte ausgeblendet ist:0 = normale, nicht ausgeblendete, sichtbare Spalte1 = ausgeblendete SpalteGilt für: SQL Server 2016 (13.x) und höhere Versionen und SQL-Datenbank |
is_masked |
bit | Gibt an, ob die Spalte durch dynamische Datenformatierung maskiert wird:0 = normale, nicht maskierte Spalte1 = Spalte ist maskiertGilt für: SQL Server 2016 (13.x) und höhere Versionen und SQL-Datenbank |
graph_type |
int | Interne Spalte mit einer Gruppe von Werten. Die Werte liegen zwischen 1 und 8 für Diagrammspalten und NULL für andere. |
graph_type_desc |
nvarchar(60) | Nur für Informationszwecke identifiziert. Wird nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt. |
is_data_deletion_filter_column |
bit | Gibt an, ob es sich bei der Spalte um die Filterspalte für die Datenbeibehaltung für die Tabelle handelt. Gilt für: Azure SQL Edge |
ledger_view_column_type |
int | Andernfalls NULL gibt die Art einer Spalte in einer Hauptbuchansicht an:1 = TRANSACTION_ID 2 = SEQUENCE_NUMBER 3 = OPERATION_TYPE 4 = OPERATION_TYPE_DESC Weitere Informationen finden Sie in der Übersicht über Ledger. Gilt für: SQL Server 2022 (16.x) und höhere Versionen und SQL-Datenbank |
ledger_view_column_type_desc |
nvarchar(60) | Wenn nicht NULL , enthält eine textbezogene Beschreibung des Typs einer Spalte in einer Ledger-Ansicht:TRANSACTION_ID SEQUENCE_NUMBER OPERATION_TYPE OPERATION_TYPE_DESC Gilt für: SQL Server 2022 (16.x) und höhere Versionen und SQL-Datenbank |
is_dropped_ledger_column |
bit | Gibt eine Buchtabellenspalte an, die gelöscht wurde. Gilt für: SQL Server 2022 (16.x) und höhere Versionen und SQL-Datenbank |
Berechtigungen
Die Sichtbarkeit der Metadaten in Katalogsichten ist auf sicherungsfähige Elemente eingeschränkt, bei denen der Benutzer entweder der Besitzer ist oder für die dem Benutzer eine Berechtigung erteilt wurde. Weitere Informationen finden Sie unter Metadata Visibility Configuration.
Anwendungsbeispiele
Abrufen von Spaltendetails für eine Tabelle
Um Metadaten für Spalten in einer Tabelle abzurufen, können Sie den folgenden Code verwenden:
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');