sql >> Database >  >> RDS >> Sqlserver

Haal de naam van een kolom uit de ID in SQL Server:COL_NAME()

In SQL Server kunt u de COL_NAME() . gebruiken functie om de naam van een kolom te retourneren, gebaseerd op de ID en de bovenliggende tabel-ID.

Dit kan handig zijn bij het opvragen van een tabel waarin alleen de kolom-ID en de ID van de bovenliggende tabel zijn opgeslagen.

De COL_NAME() functie vereist twee argumenten:de tabel-ID en de kolom-ID.

Syntaxis

De syntaxis gaat als volgt:

COL_NAME ( table_id , column_id )

Voorbeeld 1 – Basisgebruik

Hier is een eenvoudig voorbeeld om te laten zien hoe het werkt.

SELECT COL_NAME(885578193, 1) ALS resultaat;

Resultaat:

+----------+| Resultaat ||----------|| ArtistId |+----------+

In dit geval heb ik de naam van kolom 1 uit de tabel geretourneerd met een ID van 885578193.

Voorbeeld 2 – De tabel-ID ophalen

Als u alleen de naam van de tabel weet, kunt u OBJECT_ID() . gebruiken om zijn ID te retourneren op basis van de tabelnaam.

Ik weet toevallig de naam van de bovenstaande tabel, dus ik zou het vorige voorbeeld hierin kunnen veranderen:

SELECT COL_NAME(OBJECT_ID('dbo.Artists'), 1) ALS resultaat;

Resultaat:

+----------+| Resultaat ||----------|| ArtistId |+----------+

Hier is het weer, maar met de tabel-ID erbij:

SELECT OBJECT_ID('dbo.Artiesten') AS [Tabel-ID], COL_NAME(OBJECT_ID('dbo.Artiesten'), 1) AS [Kolomnaam];

Resultaat:

+------------+---------------+| Tabel-ID | Kolomnaam ||------------+---------------|| 885578193 | ArtistId |+------------+---------------+

Voorbeeld 3 – Meer kolommen

Hier voeg ik nog een paar kolommen toe aan de uitvoer.

SELECT COL_NAME(OBJECT_ID('dbo.Artiesten'), 1) AS [Kolom 1], COL_NAME(OBJECT_ID('dbo.Artiesten'), 2) AS [Kolom 2], COL_NAME(OBJECT_ID('dbo.Artiesten) '), 3) AS [Kolom 3], COL_NAME(OBJECT_ID('dbo.Artiesten'), 4) AS [Kolom 4];

Resultaat:

+------------+------------+------------+------- -----+| Kolom 1 | Kolom 2 | Kolom 3 | Kolom 4 ||------------+------------+------------+------- -----|| Artiest-ID | Artiestnaam | ActiefVan | Landnummer |+------------+------------+------------+-------- ----+

Voorbeeld 4 – Afhankelijkheden controleren

Hier is een voorbeeld waarbij ik COL_NAME() . gebruik in een query die de sys.sql_expression_dependencies . controleert systeemweergave voor afhankelijkheidsinformatie. Deze weergave retourneert de kolom-ID's in plaats van hun namen, dus ik gebruik COL_NAME() om hun namen te krijgen.

SELECT OBJECT_NAME(referencing_id) AS [Referentie-entiteit], referenced_minor_id, COL_NAME(referenced_id, referenced_minor_id) AS [Kolom]FROM sys.sql_expression_dependencies;

Resultaat:

+----------------------+----------------------- +------------+| Verwijzende entiteit | referenced_minor_id | Kolom ||----------------------+-----------------------+ ------------|| uspGetClient | 0 | NULL || uspGetClient | 0 | NULL || uspGetOrdersByClient | 0 | NULL || uspGetOrdersByClient | 0 | NULL || uspGetOrdersByClient | 0 | NULL || uspGetAlbumsByArtiest | 0 | NULL || chkClientCode | 1 | ClientCode |+----------------------+-----------------------+ ------------+

Voorbeeld 5 – In een WHERE-clausule

Hier gebruik ik de COL_NAME() functie in een WHERE clausule zodat rijen met een referenced_minor_id van NULL worden niet geretourneerd.

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 IS NORM); 

Resultaat:

+----------------------+----------------------- +------------+| Verwijzende entiteit | referenced_minor_id | Kolom ||----------------------+-----------------------+ ------------|| chkClientCode | 1 | ClientCode |+----------------------+-----------------------+ ------------+

  1. Hoe extensies voor oci8 (Oracle) in php.ini in te schakelen - PHP-waarschuwing:PHP Startup:in Unknown on line 0

  2. Hasj Wat? Hash-indexen begrijpen

  3. MySQL maandelijkse verkoop van de afgelopen 12 maanden inclusief maanden zonder verkoop

  4. Moet de gemiddelde verwerkingstijd vinden tussen alle tijdstempelrecords in Oracle SQL