select a.name as 表名,b.name as 列名 from sysobjects a left join syscolumns b on (a.id=b.id) where b.name='cInvCode' and exists (select top 1 * from a.name)如上查询代码,从系统表中查询所有包含列(cInvCode)的有记录的表,现在这条语句的错误是:
对象名 'a.name' 无效。不知怎样能达到这种目的,
对象名 'a.name' 无效。不知怎样能达到这种目的,
select a.name as 表名,b.name as 列名
from sysobjects a left join syscolumns b
on (a.id=b.id)
where b.name='cInvCode' and exists (select top 1 * from a.name)
代码再提交一遍,哪位大侠能教教,谢谢了
我也知道我贴的代码执行不了,但是我就是想达到这种目的,找到有记录的表
sp_MSforeachtable,这个存储过程貌似没用过,试试
WHERE EXISTS(SELECT 1 FROM sys.sysindexes AS x
WHERE x.id=a.id
AND x.rows>0
)
AND a.type='U'
SELECT
a.name AS [表名]
,b.name AS [列名]
FROM sys.sysobjects AS a
INNER JOIN sys.syscolumns AS b ON a.id=b.id
WHERE EXISTS(SELECT 1 FROM sys.sysindexes AS x
WHERE x.id=a.id
AND x.rows>0
)
AND a.type='U'
AND b.name='cInvCode'
查询前提是表中包含某一列名。