列出所有表名而不知道我的机器中的数据库名称

时间:2017-12-11 09:53:34

标签: sql sql-server-2014

我正在使用SQl Server 2014,如果我们知道数据库名称为:

,我们通常会列出表格。
USE YOURDBNAME
GO 
SELECT *
FROM sys.Tables
GO

但我想知道我的机器上存在的所有表格而不管db

或者我可以通过列出所有数据库名称来进行循环。(EXEC sp_databases)

有没有更好的方法可以找到这个?

3 个答案:

答案 0 :(得分:1)

有多种方法可以获取数据库中的所有表格

SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'

OR

SELECT * FROM Sys.Tables

OR

SELECT * FROM INFORMATION_SCHEMA.TABLES 

OR

SELECT sobjects.name FROM sysobjects sobjects WHERE sobjects.xtype = 'U'

Docs for all the xtypes

答案 1 :(得分:0)

select * from tab

select * from * cat

第一个将显示关联的CLUSTERID以及当前用户的表格。

答案 2 :(得分:0)

我认为您需要

SELECT name FROM master.sys.databases

,然后您将需要创建一个游标查询(针对USE XXXX),以遍历以下查询。

SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'