我正在开发一个可以处理多个数据库服务器的应用程序,比如"MySQL"和"MS SQL Server".
我想使用一个通用查询来获取特定数据库的表名,该查询应该适用于所有数据库类型.我试过以下几点:
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE='BASE TABLE'
但它给出了特定服务器的所有数据库的表名,但我只想得到所选数据库的表名.如何限制此查询以获取特定数据库的表?
我正在开发一个可以处理多个数据库服务器的应用程序,比如"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'
对于甲骨文来说,我认为相当于使用DBA_TABLES
.