如何在SQL Server数据库中查找特定列?

时间:2017-07-13 09:26:49

标签: sql-server

SQL Server 2016中是否有任何方法或工具可以根据名称在整个数据库中查找列?

示例:查找ProductNumber,它会显示所有拥有它的表

5 个答案:

答案 0 :(得分:3)

您可以使用以下查询:

select * 
from information_schema.columns 
where column_name = 'ProductNumber'

答案 1 :(得分:2)

您可以查询数据库的information_schema.columns表,其中包含数据库中定义的所有列的架构结构。

使用此查询:

select * from information_schema.columns where column_name = 'ProductNumber'

结果将为您提供以下列:

TABLE_NAMETABLE_CATALOGDATA_TYPE以及此数据库列的更多属性。

答案 2 :(得分:2)

您可以使用以下几种方法:

SELECT * 
FROM information_schema.columns 
WHERE column_name = 'YourColumnName';

-- OR

SELECT col.name, tab.name
FROM sys.columns col
INNER JOIN sys.tables tab
  ON tab.object_id = col.object_id
WHERE col.name = 'YourColumnName';

答案 3 :(得分:1)

如果您需要按名称查找数据库对象(例如表格,列,触发器) - 请查看名为SQL Search免费红门工具,它会执行此操作 - 它会搜索您的整个数据库中的任何类型的字符串。

enter image description here

enter image description here

对于任何DBA或数据库开发人员来说,这是一个非常必备的工具 - 我是否已经提到它绝对免费用于任何用途?

答案 4 :(得分:1)

SELECT
so.name "table name", 
sc.name "column name"
FROM sysobjects so
INNER JOIN syscolumns sc
ON so.id = sc.id
WHERE --so.type='U'

- 和

sc.name like '%ProductN%'
order by so.name asc