(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というものはありません(少なくともあなたのスキーマのようなものはありません。少なくとも組み込みのメタデータにはありません。 SQL Serverでは維持されません)。 sys.tables(JNKが指摘しているように)には、スキーマに関係なく、すべてのユーザーテーブルが含まれています。 –
本当に_sys_が何であるか分かりませんでした。ありがとうございました。 – StructuredQueryLlama