In SQL Server können Sie den COL_NAME()
verwenden Funktion, um den Namen einer Spalte basierend auf ihrer ID und ihrer übergeordneten Tabellen-ID zurückzugeben.
Dies kann nützlich sein, wenn eine Tabelle abgefragt wird, die nur die Spalten-ID und die ID der übergeordneten Tabelle speichert.
Der COL_NAME()
Die Funktion erfordert zwei Argumente:die Tabellen-ID und die Spalten-ID.
Syntax
Die Syntax sieht so aus:
COL_NAME ( Tabellen-ID , Spalten-ID )
Beispiel 1 – Grundlegende Verwendung
Hier ist ein einfaches Beispiel, um zu demonstrieren, wie es funktioniert.
SELECT COL_NAME(885578193, 1) AS Ergebnis;
Ergebnis:
+----------+| Ergebnis ||----------|| Künstler-ID |+----------+
In diesem Fall habe ich den Namen der Spalte 1 aus der Tabelle mit der ID 885578193 zurückgegeben.
Beispiel 2 – Abrufen der Tabellen-ID
Wenn Sie nur den Namen der Tabelle kennen, können Sie OBJECT_ID()
verwenden um seine ID basierend auf dem Tabellennamen zurückzugeben.
Ich kenne zufällig den Namen der obigen Tabelle, also könnte ich das vorherige Beispiel wie folgt ändern:
SELECT COL_NAME(OBJECT_ID('dbo.Artists'), 1) AS Ergebnis;
Ergebnis:
+----------+| Ergebnis ||----------|| Künstler-ID |+----------+
Hier ist es noch einmal, aber mit der enthaltenen Tabellen-ID:
SELECT OBJECT_ID('dbo.Artists') AS [Tabellen-ID], COL_NAME(OBJECT_ID('dbo.Artists'), 1) AS [Spaltenname];
Ergebnis:
+------------+---------------+| Tabellen-ID | Spaltenname ||-----------+---------------|| 885578193 | ArtistId |+------------+---------------+
Beispiel 3 – Mehr Spalten
Hier füge ich der Ausgabe ein paar weitere Spalten hinzu.
SELECT COL_NAME(OBJECT_ID('dbo.Artists'), 1) AS [Spalte 1], COL_NAME(OBJECT_ID('dbo.Artists'), 2) AS [Spalte 2], COL_NAME(OBJECT_ID('dbo.Artists'). '), 3) AS [Spalte 3], COL_NAME(OBJECT_ID('dbo.Artists'), 4) AS [Spalte 4];
Ergebnis:
+------------+------------+------------+------- -----+| Spalte 1 | Spalte 2 | Spalte 3 | Spalte 4 ||------------+-----------+------------+------- -----|| ArtistID | Künstlername | AktivVon | CountryId |+------------+------------+------------+-------- ----+
Beispiel 4 – Überprüfung von Abhängigkeiten
Hier ist ein Beispiel, in dem ich COL_NAME()
verwende in einer Abfrage, die die sys.sql_expression_dependencies
überprüft Systemansicht für Abhängigkeitsinformationen. Diese Ansicht gibt die Spalten-IDs statt ihrer Namen zurück, daher verwende ich COL_NAME()
um ihre Namen zu erfahren.
SELECT OBJECT_NAME(referencing_id) AS [Referencing Entity], referenced_minor_id, COL_NAME(referenced_id, referenced_minor_id) AS [Column]FROM sys.sql_expression_dependencies;
Ergebnis:
Beispiel 5 – In einer WHERE-Klausel
Hier verwende ich den COL_NAME()
Funktion in einem WHERE
-Klausel, sodass Zeilen mit einer referenced_minor_id
von NULL
werden nicht zurückgegeben.
SELECT OBJECT_NAME(referencing_id) AS [Referencing Entity], referenced_minor_id, COL_NAME(referenced_id, referenced_minor_id) AS [Column]FROM sys.sql_expression_dependenciesWHERE COL_NAME(referenced_id, referenced_minor_id) IS NOT NULL;
Ergebnis: