查找引用特定列的表(包含数据)

时间:2016-09-08 20:23:28

标签: mysql sql

我有一个数据库,其中包含很多没有数据的表。我想找到引用特定列的所有表,但我想确保显示的表具有数据且不为空。到目前为止,我已经能够使用

显示哪些表具有数据
select 
t.name TableName, i.rows Records
from sysobjects t, sysindexes i
where t.xtype = 'U' and i.id = t.id and i.indid in (0,1) AND rows > 0 
order by TableName;

我还能够通过使用显示哪些表引用了我想要的特定列:

SELECT * 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE COLUMN_NAME = 'COLUMN_NAME' 

我只是不知道如何将两者结合起来。

1 个答案:

答案 0 :(得分:0)

你尝试过这样的事吗?

SELECT t.name TableName,
       i.rows Records,
       c.*
FROM sysobjects t
     INNER JOIN sysindexes i ON i.id = t.id
     INNER JOIN INFORMATION_SCHEMA.COLUMNS c ON t.name = c.TABLE_NAME
WHERE t.xtype = 'U'
      AND i.indid IN(0, 1)
     AND rows > 0
ORDER BY TableName;