小编典典

通过 SQL 查询获取特定数据库的所有表名?

all

我正在开发可以处理多个数据库服务器的应用程序,例如“MySQL”和“MS SQL Server”。

我想使用适用于所有数据库类型的通用查询来获取特定数据库的表名。我试过以下:

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

但它给出了特定服务器的所有数据库的表名,但我只想获取选定数据库的表名。如何限制此查询以获取特定数据库的表?


阅读 133

收藏
2022-03-28

共1个答案

小编典典

可能是由于不同的 sql dbms 处理模式的方式。

尝试以下

对于 SQL Server:

SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_CATALOG='dbName'

对于 MySQL:

SELECT TABLE_NAME 
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA='dbName'

对于 Oracle,我认为等效的方法是使用DBA_TABLES.

2022-03-28