W SQL Server możesz użyć COL_NAME()
funkcja zwracająca nazwę kolumny na podstawie jej identyfikatora i identyfikatora tabeli nadrzędnej.
Może to być przydatne podczas wysyłania zapytań do tabeli, która przechowuje tylko identyfikator kolumny i identyfikator tabeli nadrzędnej.
COL_NAME()
funkcja wymaga dwóch argumentów:identyfikatora tabeli i identyfikatora kolumny.
Składnia
Składnia wygląda tak:
COL_NAME ( identyfikator_tabeli , identyfikator_kolumny )
Przykład 1 – Podstawowe użycie
Oto podstawowy przykład pokazujący, jak to działa.
WYBIERZ COL_NAME(885578193, 1) jako wynik;
Wynik:
+----------+| Wynik ||----------|| Identyfikator wykonawcy |+----------+
W tym przypadku zwróciłem nazwę kolumny 1 z tabeli z identyfikatorem 885578193.
Przykład 2 – Uzyskaj identyfikator tabeli
Jeśli znasz tylko nazwę tabeli, możesz użyć OBJECT_ID()
aby zwrócić swój identyfikator na podstawie nazwy tabeli.
Tak się składa, że znam nazwę powyższej tabeli, więc mogę zmienić poprzedni przykład na ten:
SELECT COL_NAME(OBJECT_ID('dbo.Artists'), 1) jako wynik;
Wynik:
+----------+| Wynik ||----------|| Identyfikator wykonawcy |+----------+
I znowu, ale z dołączonym identyfikatorem tabeli:
SELECT OBJECT_ID('dbo.Artyści') AS [Identyfikator tabeli], COL_NAME(OBJECT_ID('dbo.Artyści'), 1) AS [Nazwa kolumny];
Wynik:
+---------------+---------------+| Identyfikator tabeli | Nazwa kolumny ||------------+---------------|| 885578193 | Identyfikator artysty |+---------------+---------------+
Przykład 3 – Więcej kolumn
Tutaj dodaję jeszcze kilka kolumn do wyniku.
SELECT COL_NAME(OBJECT_ID('dbo.Artyści'), 1) AS [Kolumna 1], COL_NAME(OBJECT_ID('dbo.Artists'), 2) AS [Kolumna 2], COL_NAME(OBIEKT_ID('dbo.Artyści) '), 3) AS [Kolumna 3], COL_NAME(OBJECT_ID('dbo.Artists'), 4) AS [Kolumna 4];
Wynik:
+----------------+------------+------------+------- -----+| Kolumna 1 | Kolumna 2 | Kolumna 3 | Kolumna 4 ||-------------+------------+------------+----------- -----|| Identyfikator artysty | Nazwa wykonawcy | AktywnyOd | Identyfikator Kraju |+---------------+------------+------------+--------- ----+
Przykład 4 – Sprawdzanie zależności
Oto przykład, w którym używam COL_NAME()
w zapytaniu, które sprawdza sys.sql_expression_dependencies
widok systemowy dla informacji o zależnościach. Ten widok zwraca identyfikatory kolumn, a nie ich nazwy, więc używam COL_NAME()
aby uzyskać ich imiona.
SELECT OBJECT_NAME(referencing_id) AS [jednostka odniesienia], referenced_minor_id, COL_NAME (referencyjna_id, referenced_minor_id) AS [kolumna]FROM sys.sql_expression_dependencies;
Wynik:
+----------------------+----------------------- +----------------+| Jednostka odniesienia | referenced_minor_id | Kolumna ||----------------------+------------------------+ ------------|| uspGetClient | 0 | NULL || uspGetClient | 0 | NULL || uspGetOrdersByClient | 0 | NULL || uspGetOrdersByClient | 0 | NULL || uspGetOrdersByClient | 0 | NULL || uspPobierzAlbumyAutorstwa | 0 | NULL || chkKodKlienta | 1 | Kod Klienta |+----------------------+----------------------------+ ------------+
Przykład 5 – W klauzuli WHERE
Tutaj używam COL_NAME()
funkcja w WHERE
klauzula, aby wiersze z referenced_minor_id
z NULL
nie są zwracane.
SELECT OBJECT_NAME(referencing_id) AS [jednostka odniesienia], referenced_minor_id, COL_NAME (referencyjna_id, referenced_minor_id) AS [kolumna]FROM sys.sql_expression_dependenciesWHERE COL_NAME(referencyjna_id, referenced_minor_id) NIE JEST NULL>Wynik:
+----------------------+----------------------- +----------------+| Jednostka odniesienia | referenced_minor_id | Kolumna ||----------------------+------------------------+ ------------|| chkKodKlienta | 1 | Kod Klienta |+----------------------+----------------------------+ ------------+