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

我正在研究可处理多个数据库服务器(如“MySQL”和“MS SQL Server”)的应用程序。

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

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

但它给出了特定服务器的所有数据库的表名,但我只想获取所选数据库的表名。 我怎样才能限制这个查询来获取特定数据库的表?


可能是由于不同的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


从这里偷来的:

USE YOURDBNAME
GO 
SELECT *
FROM sys.Tables
GO

以下查询将选择数据库中名为DBName所有Tables

USE DBName
GO 
SELECT *
FROM sys.Tables
GO
链接地址: http://www.djcxy.com/p/93973.html

上一篇: Get all table names of a particular database by SQL query?

下一篇: Avoiding SQL injection without parameters