2010-11-16 9 views

ответ

71

Довольно просто на уровне базы данных на

Use DatabaseName 
Select * From INFORMATION_SCHEMA.COLUMNS Where column_name = 'ColName' 
+0

Это решение включает в себя взгляды. Есть ли способ определить, какие из них являются таблицами, а какие - представлениями? –

+0

Для Oracle см. Ответ avDev: http://stackoverflow.com/a/16371127/1143724 – MrDuk

+0

См. Это, чтобы получить только таблицы или таблицы и представления [MSSQL] http://stackoverflow.com/questions/4849652/find- all-tables-contains-column-with-defined-name – Shiham

13
select table_name 
from information_schema.columns 
where COLUMN_NAME = 'MyColumn' 
8

Вы можете использовать представление информации схемы:

SELECT DISTINCT TABLE_SCHEMA, TABLE_NAME 
FROM Information_Schema.Columns 
WHERE COLUMN_NAME = 'ID' 

Вот ссылка MSDN для «Столбцов» Вид: http://msdn.microsoft.com/en-us/library/ms188348.aspx

+0

+1 за ссылку –

1

Вы можете найти то, что вы ищете в информационной схемы: SQL Server 2005 System Tables and Views Я думаю, что вам нужен SQL Server 2005 или выше для использования подхода, описанного в этой статье, но аналогичный метод может быть использован для более ранних версий.

5

Если вы пытаетесь запроса к базе данных Oracle, вы можете захотеть использовать

select owner, table_name 
from all_tab_columns 
where column_name = 'ColName'; 
6
SELECT t.name AS table_name, 
SCHEMA_NAME(schema_id) AS schema_name, 
c.name AS column_name,* 
FROM sys.tables AS t 
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID 
WHERE c.name LIKE '%YOUR_COLUMN%' 
ORDER BY schema_name, table_name; 

In depth article by SQL Authority

+0

thanx это прекрасно –

3
SELECT  T.TABLE_NAME, C.COLUMN_NAME 
FROM  INFORMATION_SCHEMA.COLUMNS C 
      INNER JOIN INFORMATION_SCHEMA.TABLES T ON T.TABLE_NAME = C.TABLE_NAME 
WHERE  TABLE_TYPE = 'BASE TABLE' 
      AND COLUMN_NAME = 'ColName' 

Это возвращает таблицу s и игнорирует мнения для всех, кто заинтересован!

2

--get таблицы, которая содержит выбранные ColumnName

SELECT c.name AS ColName, t.name AS TableName 
FROM sys.columns c 
JOIN sys.tables t ON c.object_id = t.object_id 
WHERE c.name LIKE '%batchno%' 

его работал ...

Смежные вопросы