SQL Server 2016中是否有任何方法或工具可以根据名称在整个数据库中查找列?
示例:查找ProductNumber
,它会显示所有拥有它的表
答案 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_NAME
,TABLE_CATALOG
,DATA_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的免费红门工具,它会执行此操作 - 它会搜索您的整个数据库中的任何类型的字符串。
对于任何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