我工作的应用程序,可以处理多个数据库服务器,如“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
。
从here窃取:
USE YOURDBNAME
GO
SELECT *
FROM sys.Tables
GO
以下查询将选择名为DBName
的数据库中的所有Tables
:
USE DBName
GO
SELECT *
FROM sys.Tables
GO
把DATABASE NAME
放在INFORMATION_SCHEMA.TABLES
前面:
select table_name from YOUR_DATABASE.INFORMATION_SCHEMA.TABLES where TABLE_TYPE = 'BASE TABLE'
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(54条)