我已經通過一堆網站進行了搜索,我還沒有遇到過任何代碼或教程,它們都經歷了從單個數據庫獲取表名的細節。從數據庫中獲取表名
假設我有4個數據庫,並且我想要名爲mp21
的數據庫中的所有表的名稱,我可以使用什麼查詢?
我已經通過一堆網站進行了搜索,我還沒有遇到過任何代碼或教程,它們都經歷了從單個數據庫獲取表名的細節。從數據庫中獲取表名
假設我有4個數據庫,並且我想要名爲mp21
的數據庫中的所有表的名稱,我可以使用什麼查詢?
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'
在MySQL中,這將列出所有的數據庫:
show databases;
對於這些,你可以這樣做:
use <database_name>;
然後
show tables;
使用mp21 SHOW TABLES也不起作用。另一個代碼我之前試過。 – 2011-01-10 10:03:42
use mp21
SELECT name FROM dbo.sysobjects WHERE xtype = 'U'
之前嘗試過。我不知道爲什麼,但sys不適用於我的查詢。 – 2011-01-10 10:02:28
你正在使用哪個數據庫系統,sqlserver? – 2011-01-10 10:04:16
在SQL Server中,你可以使用 -
select * from sys.tables
如果你是問關於.NET代碼,那麼你需要SMO:
using Microsoft.SqlServer.Management.Smo;
using Microsoft.SqlServer.Management.Common;
public static List<Table> GetTables(string connection, string databaseName)
{
if (String.IsNullOrEmpty(connection))
throw new ArgumentException("connection is null or empty.", "connection");
Server srv = getServer(connection);
return srv.Databases[databaseName].Tables.Cast<Table>().ToList();
}
我用這個查詢:
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'
它爲我提供了表名以及sysDiagram(爲該數據庫生成的數據庫圖)
這是您詢問的MySQL查詢。
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='mp21'
你使用什麼風格的RDBMS - SQL Server,MySQL或其他..? – AdaTheDev 2011-01-10 09:54:47
另外,你使用什麼編程語言/框架? .NET,Java,COBOL ...?或者你想僅使用SQL來完成它? – sleske 2011-01-10 09:59:25