首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL怎么查询有记录的所有表

2012-12-31 
SQL如何查询有记录的所有表select a.name as 表名,b.name as 列名 from sysobjects a left join syscolumn

SQL如何查询有记录的所有表
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' 无效。

不知怎样能达到这种目的,
[解决办法]
EXEC [sys].[sp_MSforeachtable] 'if(select count(*) from ?)>0 print ''?'''
[解决办法]
含 cInvCode 列的表名:

SELECT 
a.nameAS [表名]
,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'

热点排行
Bad Request.