通过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?