Metadata

如果我們不知道表名,如何使用列名來辨識表名

  • November 1, 2018

如果我們不知道表名,如何使用列名來辨識表名

想像一下,如果您在數據庫中有 10000 個表

我知道列名,但我不知道確切的表名。

您能否告知是否有機會使用您已經知道的列名找到表名?

您可以使用 INFORMATION_SCHEMA.COLUMNS 代替 sys.columns

SELECT
   TABLE_CATALOG,TABLE_SCHEMA,TABLE_SCHEMA,COLUMN_NAME
FROM
   INFORMATION_SCHEMA.COLUMNS 
WHERE
   COLUMN_NAME LIKE '%MyColumn'

如果這是針對 Microsoft SQL Server的(在這種情況下,您應該為您的 questino 添加一個sql-server標籤!),您可以使用以下查詢:

SELECT
   ColumnName = c.Name,
   SchemaName = SCHEMA_NAME(t.schema_id),
   TableName = t.name
FROM 
   sys.columns c
INNER JOIN 
   sys.tables t ON t.object_id = c.object_id
WHERE
   c.name = 'your-column-name-here'

引用自:https://dba.stackexchange.com/questions/93377