我試圖從(SQL Server 2008)數據庫中選擇各種表名和列名。數據庫相當大。有幾個數據庫坐在同一個服務器上,每個數據庫都有不同的模式等等。一旦涉及多部分標識符,我就卡住了。例如,要檢索表的列表中的下一個數據庫,這工作得很好:在多部分標識符中查找表名稱
SELECT [name]
FROM DatabaseOne.sys.tables
ORDER BY [name]
然後我想獲得一定的模式下表。例如:
SELECT [name]
FROM DatabaseOne.SchemaOne.sys.tables
ORDER BY [name]
但我得到的錯誤:
問題的很大一部分可能在於這樣一個事實:我真的不知道架構任何東西(如果這就是他們甚至什麼)。
另外,如果我想查找表中的列名稱,比如說DatabaseOne.SchemaOne.TableOne,我該怎麼做呢?
任何幫助將不勝感激。
sys是一個模式,所以沒有像yourschema.sys.tables這樣的東西(也沒有像yourschema.tables這樣的東西,至少不是內置的元數據 - 你可以自己創建這樣的表,但不會由SQL Server維護)。 sys.tables(正如JNK指出的)包含所有用戶表,而不管架構如何。 –
我不知道_sys_是真的。謝謝。 – StructuredQueryLlama