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

Намерете колоните, върнати от функция с таблична стойност (примери за T-SQL)

В SQL Server можете да използвате Transact-SQL ROUTINE_COLUMNS изглед на схемата за системна информация, за да намерите колоните, върнати от функция с таблична стойност.

По-конкретно, той връща един ред за всяка колона, върната от функциите с таблична стойност, до които може да бъде достъпен текущият потребител в текущата база данни.

За да използвате този изглед, посочете пълното име на INFORMATION_SCHEMA.ROUTINE_COLUMNS .

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

Ето един пример.

ИЗБЕРЕТЕ TABLE_CATALOG КАТО [База данни], TABLE_SCHEMA КАТО [Схема], TABLE_NAME КАТО [Функция], COLUMN_NAME КАТО [Колона], DATA_TYPE КАТО [Тип данни], CHARACTER_MAXIMUM_LENGTH КАТО [Максимална дължина на символа] FROM INFORMAR.> 

Резултат:

+------------+-----------+-------------------+-- ----------+------------+------------------+| База данни | Схема | Функция | Колона | Тип данни | Максимална дължина на символа ||------------+----------+-------------------+- -----------+------------+-------------------|| Музика | dbo | ufn_AlbumsByGenre | Име на изпълнител | nvarchar | 255 || Музика | dbo | ufn_AlbumsByGenre | Име на албум | nvarchar | 255 || Музика | dbo | ufn_AlbumsByGenre | Жанр | nvarchar | 50 |+------------+-----------+------------------+--- ---------+------------+-------------------+

Тези резултати ми показват, че има само една функция с таблична стойност, до която мога да осъществя достъп в базата данни и тя връща три колони.

В този пример избрах да върна само шест колони от изгледа. Следният пример показва всички колони, върнати от изгледа.

Пример 2 – Връщане на всички колони от изгледа

В този пример включвам всички колони, които изгледът връща. Използвам и вертикален изход, така че да не сте принудени да превъртате хоризонтално. Освен това, с цел краткост, указвам изгледът да връща информация само за една колона (следователно се връща само един ред).

SELECT * FROM INFORMATION_SCHEMA.ROUTINE_COLUMNSWHERE TABLE_NAME ='ufn_AlbumsByGenre'AND COLUMN_NAME ='Име на изпълнител';

Резултат (с помощта на вертикален изход):

ТАБЛИЦА_КАТАЛОГ | МузикаTABLE_SCHEMA | dboTABLE_NAME | ufn_AlbumsByGenreCOLUMN_NAME | Име на изпълнителORDINAL_POSITION | 1COLUMN_DEFAULT | NULLIS_NULLABLE | NODATA_TYPE | nvarcharCHARACTER_MAXIMUM_LENGTH | 255 CHARACTER_OCTET_LENGTH | 510NUMERIC_PRECISION | NULLNUMERIC_PRECISION_RADIX | NULLNUMERIC_SCALE | NULLDATETIME_PRECISION | NULLCHARACTER_SET_CATALOG | NULLCHARACTER_SET_SCHEMA | NULLCHARACTER_SET_NAME | UNICODECOLLATION_CATALOG | NULLCOLLATION_SCHEMA | NULLCOLLATION_NAME | SQL_Latin1_General_CP1_CI_ASDOMAIN_CATALOG | NULLDOMAIN_SCHEMA | NULLDOMAIN_NAME | NULL

Вижте документацията на Microsoft за информация относно всяка колона, върната от този изглед.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL по-малко от () оператор за начинаещи

  2. Част 2 – Как да организираме диаграма на голяма база данни

  3. Какъв е проблемът за 2038 година?

  4. Как да получите всички възможни комбинации от редове от две таблици в SQL

  5. Промяна на начина, по който isql изпълнява SQL