Сведения о вопросе

Junior

07:01, 27th August, 2020

Теги

sql   sql-server    

Использовать метаданные таблицы для инструкции select в SQL Server?

Просмотров: 404   Ответов: 2

У меня есть большая база данных, и я хотел бы выбрать имена таблиц, которые имеют определенное имя столбца. Я сделал что-то подобное в MySQL, но не могу найти никакой информации на сервере SQL.

Я хочу сделать что-то вроде:

select [table] 
from [db] 
where table [has column 'classtypeid']

Как я могу сделать что-то подобное?



  Сведения об ответе

DAAA

20:38, 27th August, 2020

Используйте представления ANSI information_schema, это также будет работать в MySQL

select table_name 
from information_schema.columns 
where column_name = 'classtypeid'


  Сведения об ответе

KOMP

10:54, 6th August, 2020

Здесь вы идете:

SELECT C.TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS AS C
  INNER JOIN INFORMATION_SCHEMA.TABLES AS T ON C.TABLE_NAME = T.TABLE_NAME
    AND C.TABLE_SCHEMA = T.TABLE_SCHEMA
WHERE C.COLUMN_NAME = 'classtypeid'
  AND T.TABLE_TYPE = 'BASE TABLE'

Edit: обратите внимание, что это не будет список представлений, основанных на каких-либо таблицах с этим столбцом. Если вы только запросите INFORMATION_SCHEMA.COLUMNS, вы также получите обратные представления.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться