如何在sqlserver 中获取所有数据库的表信息

[复制链接]
查看11 | 回复4 | 2007-10-20 08:38:44 | 显示全部楼层 |阅读模式
在sqlserver2008中,只能用
select * from sys.tables
获取当前数据库的表的信息;
如果想知道其他数据库的表信心,必须用
use 数据库名;
然后在用 select * from sys.tables;

也就是说,如果想同时看两个数据库的表信息,就没有办法;

在oracle里,可以这样写:
select * from dba_talbes where owner IN(’数据库1','数据库2');

所以,我想知道如何在sqlserver中利用数据字典在一个SQL里获取多个数据库表的信息;





回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
重复帖子
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
select * from dbname1.sys.tables
union all
select * from dbname2.sys.tables


回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
微萌先生 发表于 2013-8-8 15:06
select * from dbname1.sys.tables
union all
select * from dbname2.sys.tables

要收版权的


回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
EXEC sp_MSforeachdb@command1="print '?'",@command2="select * from sys.tables "
也可以用游标循环sys.databases
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行