我正在开发可以处理多个数据库服务器的应用程序,例如“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.
DBA_TABLES