Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Вземете името на колона от нейния идентификатор в SQL Server:COL_NAME()

В SQL Server можете да използвате COL_NAME() функция за връщане на името на колона въз основа на нейния идентификатор и идентификатора на родителската таблица.

Това може да бъде полезно при запитване към таблица, която съхранява само идентификатора на колоната и идентификатора на родителската таблица.

COL_NAME() функцията изисква два аргумента:идентификатора на таблицата и идентификатора на колоната.

Синтаксис

Синтаксисът е така:

COL_NAME ( table_id , column_id )

Пример 1 – Основна употреба

Ето основен пример, за да демонстрирате как работи.

ИЗБЕРЕТЕ COL_NAME(885578193, 1) КАТО резултат;

Резултат:

+---------+| Резултат ||----------|| ArtistId |+----------+

В този случай върнах името на колона 1 от таблицата с идентификационен номер 885578193.

Пример 2 – Вземете идентификатора на таблицата

Ако знаете само името на таблицата, можете да използвате OBJECT_ID() за да върне своя идентификатор въз основа на името на таблицата.

Случайно знам името на горната таблица, така че мога да променя предишния пример с това:

ИЗБЕРЕТЕ COL_NAME(OBJECT_ID('dbo.Artists'), 1) КАТО Резултат;

Резултат:

+---------+| Резултат ||----------|| ArtistId |+----------+

Ето го отново, но с включен ID на таблицата:

ИЗБЕРЕТЕ OBJECT_ID('dbo.Artists') КАТО [ИД на таблица], COL_NAME(OBJECT_ID('dbo.Artists'), 1) КАТО [Име на колона];

Резултат:

+-----------+--------------+| ID на таблицата | Име на колона ||------------+--------------|| 885578193 | ArtistId |+------------+--------------+

Пример 3 – Още колони

Тук добавям още няколко колони към изхода.

ИЗБЕРЕТЕ COL_NAME(OBJECT_ID('dbo.Artists'), 1) КАТО [Колона 1], COL_NAME(OBJECT_ID('dbo.Artists'), 2) КАТО [Колона 2], COL_NAME(OBJECT_ID('dbo.Artists') '), 3) КАТО [Колона 3], COL_NAME(OBJECT_ID('dbo.Artists'), 4) КАТО [Колона 4];

Резултат:

+------------+------------+-----------+------- -----+| Колона 1 | Колона 2 | Колона 3 | Колона 4 ||------------+-----------+-----------+------- -----|| ArtistId | Име на изпълнител | ActiveFrom | CountryId |+-----------+------------+-----------+-------- ----+

Пример 4 – Проверка на зависимости

Ето пример, в който използвам COL_NAME() в заявка, която проверява sys.sql_expression_dependencies системен изглед за информация за зависимостта. Този изглед връща идентификаторите на колоните, а не техните имена, така че използвам COL_NAME() за да получите имената им.

ИЗБЕРЕТЕ OBJECT_NAME(referencing_id) КАТО [Референтен обект], referenced_minor_id, COL_NAME(referenced_id, referenced_minor_id) AS [Column]FROM sys.sql_expression_dependencies;

Резултат:

+---------------------+----------------------- +-----------+| Референтен субект | препоръчан_незначителен_идентификатор | Колона ||---------------------+-----------------------+ ------------|| uspGetClient | 0 | NULL || uspGetClient | 0 | NULL || uspGetOrdersByClient | 0 | NULL || uspGetOrdersByClient | 0 | NULL || uspGetOrdersByClient | 0 | NULL || uspGetAlbumsByArtist | 0 | NULL || chkClientCode | 1 | Клиентски код |+---------------------+-----------------------+ ------------+

Пример 5 – В клауза WHERE

Тук използвам COL_NAME() функция в WHERE клауза, така че редовете с referenced_minor_id от NULL не се връщат.

ИЗБЕРЕТЕ OBJECT_NAME(referencing_id) КАТО [Референтен обект], referenced_minor_id, COL_NAME(referenced_id, referenced_minor_id) КАТО [Колона]FROM sys.sql_expression_dependenciesWHERE COL_NAME(referenced_id, referenced_minor_id) 

Резултат:

+---------------------+----------------------- +-----------+| Референтен субект | препоръчан_незначителен_идентификатор | Колона ||---------------------+-----------------------+ ------------|| chkClientCode | 1 | Клиентски код |+---------------------+-----------------------+ ------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Актуализиране на пощенски акаунт в база данни (SSMS)

  2. Премахнете всички интервали от низ в SQL Server

  3. Кога/Защо да използвам каскадиране в SQL Server?

  4. Как да сравним версиите на софтуера с помощта на SQL Server?

  5. Актуализирайте записите в таблицата от CTE