Di SQL Server, Anda dapat menggunakan COL_NAME()
berfungsi untuk mengembalikan nama kolom, berdasarkan ID-nya dan ID tabel induknya.
Ini bisa berguna saat membuat kueri tabel yang hanya menyimpan ID kolom dan ID tabel induk.
COL_NAME()
fungsi memerlukan dua argumen:ID tabel, dan ID kolom.
Sintaks
Sintaksnya seperti ini:
COL_NAME ( table_id , column_id )
Contoh 1 – Penggunaan Dasar
Berikut adalah contoh dasar untuk mendemonstrasikan cara kerjanya.
SELECT COL_NAME(885578193, 1) SEBAGAI Hasil;
Hasil:
+----------+| Hasil ||----------|| ArtistId |+----------+
Dalam hal ini, saya mengembalikan nama kolom 1 dari tabel dengan ID 885578193.
Contoh 2 – Dapatkan ID Tabel
Jika Anda hanya mengetahui nama tabel, Anda dapat menggunakan OBJECT_ID()
untuk mengembalikan ID-nya berdasarkan nama tabel.
Kebetulan saya tahu nama tabel di atas, jadi saya bisa mengubah contoh sebelumnya menjadi ini:
SELECT COL_NAME(OBJECT_ID('dbo.Artists'), 1) SEBAGAI Hasil;
Hasil:
+----------+| Hasil ||----------|| ArtistId |+----------+
Ini dia lagi, tetapi dengan ID tabel yang disertakan:
SELECT OBJECT_ID('dbo.Artists') SEBAGAI [ID Tabel], COL_NAME(OBJECT_ID('dbo.Artists'), 1) AS [Nama Kolom];
Hasil:
+------------+---------------+| ID Tabel | Nama Kolom ||------------+---------------|| 885578193 | ArtistId |+------------+---------------+
Contoh 3 – Kolom Lainnya
Di sini, saya menambahkan beberapa kolom lagi ke output.
SELECT COL_NAME(OBJECT_ID('dbo.Artists'), 1) AS [Kolom 1], COL_NAME(OBJECT_ID('dbo.Artists'), 2) AS [Kolom 2], COL_NAME(OBJECT_ID('dbo.Artists'), '), 3) AS [Kolom 3], COL_NAME(OBJECT_ID('dbo.Artists'), 4) AS [Kolom 4];
Hasil:
+------------+------------+------------+------- -----+| Kolom 1 | Kolom 2 | Kolom 3 | Kolom 4 ||------------+------------+------------+------- -----|| Id Artis | Nama Artis | AktifDari | CountryId |+------------+------------+------------+-------- ----+
Contoh 4 – Memeriksa Dependensi
Berikut adalah contoh di mana saya menggunakan COL_NAME()
dalam kueri yang memeriksa sys.sql_expression_dependencies
tampilan sistem untuk informasi ketergantungan. Tampilan ini mengembalikan ID kolom daripada namanya, jadi saya menggunakan COL_NAME()
untuk mendapatkan nama mereka.
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;
Hasil:
+----------------------+----------------------- +------------+| Entitas Referensi | referensi_minor_id | Kolom ||----------------------+-----------------------+ ------------|| uspGetClient | 0 | NULL || uspGetClient | 0 | NULL || uspGetOrdersByClient | 0 | NULL || uspGetOrdersByClient | 0 | NULL || uspGetOrdersByClient | 0 | NULL || uspGetAlbumsByArtist | 0 | NULL || chkClientCode | 1 | ClientCode |+------------+-----------------------+ ------------+
Contoh 5 – Dalam Klausa WHERE
Di sini, saya menggunakan COL_NAME()
berfungsi dalam WHERE
klausa sehingga baris dengan referenced_minor_id
dari NULL
tidak dikembalikan.
SELECT OBJECT_NAME(referencing_id) AS [Referencing Entity], referenced_minor_id, COL_NAME(referenced_id, referenced_minor_id) SEBAGAI [Column]FROM sys.sql_expression_dependenciesWHERE COL_NAME(referenced_id, referenced_pre NULL_id;Hasil:
+----------------------+----------------------- +------------+| Entitas Referensi | referensi_minor_id | Kolom ||----------------------+-----------------------+ ------------|| chkClientCode | 1 | ClientCode |+------------+-----------------------+ ------------+