SQL文でデフォルトのデータベース以外を参照しない場合は、修飾されない名前を使用するのが一番簡単です。SQL文の中で使用している非修飾名が複数のデータベースからテーブル、ビュー、その他のオブジェクトを参照する場合、その名前はいずれか1つのデータベースだけに適用されます。
修飾されていないテーブルの名前が検出されると、以下のすべてのデータベースでその名前のオブジェクトが検索されます。
- デフォルト データベース
- SQL文で参照されているすべてのデータベース
- ログイン ユーザー データベースの中のその名前の揮発テーブル
検索処理では、これらのデータベースの任意の1つだけでそのテーブル名を検出する必要があります。複数のデータベースでそのテーブル名が検出された場合は、Teradata Databaseから「ambiguous table name」という趣旨のエラー メッセージが返されます。そのような場合は、デフォルトのデータベースが他のデータベースよりも優先されることはありません。
したがって、複数のデータベースを参照する場合には、複数のデータベースに含まれている名前の完全修飾形式を使用することが必要です。
次の構文は、テーブルなどを参照するための完全修飾形式を示しています。
database_name.table_name