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

我想获得表的名称使用一个通用的查询,应该适合于所有数据库类型的特定数据库。我尝试了以下几点:

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

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


当前回答

SELECT TABLE_NAME
FROM your_database_name.INFORMATION_SCHEMA.TABLES
ORDER BY TABLE_NAME;

其他回答

如果有人想在不使用"use"关键字的情况下列出特定数据库中的所有表:

SELECT TABLE_NAME FROM databasename.INFORMATION_SCHEMA.TABLES

从这里偷来:

USE YOURDBNAME
GO 
SELECT *
FROM sys.Tables
GO

我没有看到这个答案,但嘿,这就是我所做的:

SELECT name FROM databaseName.sys.Tables;
select * from sys.tables
order by schema_id      --comments: order by 'schema_id' to get the 'tables' in 'object explorer order'
go

对于Mysql,你可以做的很简单。显示表;