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

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


我想使用适合所有数据库类型的常规查询来获取特定数据库的表名。我尝试了以下方法:


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

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


牛魔王的故事
浏览 770回答 3
3回答

慕后森

可能是由于不同的sql dbms处理架构的方式所致。尝试以下对于SQL Server:SELECT TABLE_NAMEFROM INFORMATION_SCHEMA.TABLESWHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_CATALOG='dbName'对于MySQL:SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLESWHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA='dbName' 对于Oracle,我认为可以使用DBA_TABLES。

千万里不及你

从这里被盗:USE YOURDBNAMEGO SELECT *FROM sys.TablesGO

慕婉清6462132

以下查询将选择Tables数据库中所有名为的DBName:USE DBNameGO SELECT *FROM sys.TablesGO
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server