INFORMATION_SCHEMA.TABLES或INFORMATION_SCHEMA.COLUMNS僅適用於指定的數據庫。適用於服務器上所有數據庫的SQL - INFORMATION_SCHEMA
是否有可能通過使用INFORMATION_SCHEMA查詢服務器上所有數據庫的表元數據?
INFORMATION_SCHEMA.TABLES或INFORMATION_SCHEMA.COLUMNS僅適用於指定的數據庫。適用於服務器上所有數據庫的SQL - INFORMATION_SCHEMA
是否有可能通過使用INFORMATION_SCHEMA查詢服務器上所有數據庫的表元數據?
只有對數據庫迭代使用動態查詢,才能做到這一點。一種方法是使用ms_ForEachDB存儲過程,其次是查詢sys.databases動態視圖。
您可以使用此:
SELECT TABLE_SCHEMA
FROM information_schema.tables
group by tables.TABLE_SCHEMA
雖然此代碼可能會回答問題,但如果提供 關於_why_和/或_how_的其他上下文,則回答問題將顯着提高其長期值 。請[編輯]你的答案,添加一些解釋。 特別是,它是否一次抓取所有數據庫的元數據? AIUI(基於MyQSL和PostgreSQL)將僅返回當前數據庫的表元數據。 SQL Server在這方面有什麼不同? – 2016-04-28 15:00:21
這不回答這個問題。所提供的查詢僅返回當前數據庫上下文的數據。如果您的服務器上有多個數據庫(TABLE_CATALOG),那麼它不會顯示所有這些數據庫,這就是這個問題所要求的。試試這個'SELECT DISTINCT TABLE_CATALOG FROM information_schema.tables',你將只能看到一個值。 – Davos 2018-02-06 23:14:34
SELECT DISTINCT `TABLE_SCHEMA` FROM `information_schema`.`TABLES`;
你有適當的訪問與您的用戶,這使得查詢嗎? – Adnan 2011-04-26 07:25:53
假設我有,解決方案是什麼? – 2011-04-26 07:26:58