2011-03-15 21 views
1

私は、レガシーシステムを廃止しようとしているチームに取り組んでいます。これは、複数の統合を備えた比較的大きなシステムであるため、レガシーシステムを置き換えた後でも、データベースは存続します。Sybaseテーブルの複数のエイリアス?

問題は、データベース内のすべてのテーブル名に「RT001」、「RT002」、「RT003」などの数値名が付いていることです。100を超えるテーブルでは、各テーブルの内容を知ることが難しくなります。どのようにして特定のデータを取得することができます。

sybaseがSQL「select * from Order、OrderItems where ...」が表RT035およびRT036を参照していることをsybaseが認識するように、sybaseにグローバル表別名を定義する方法はありますか?こうすることで、オリジナルのテーブル名をRT035として保持し、「Order」や「RT035_Order」などのエイリアスを参照することができます。

答えて

2

私が知る限り、Sybase ASEでは「シノニム」(Oracleデータベースで呼び出されているもの)はありません。しかし、基本的に同じことを行うには単純なビューを使用することができます。

CREATE VIEW Order AS SELECT * FROM RT035; 
+0

このビューは、ビューを作成したテーブルで発生した変更に基づいて更新されますか? –

+0

ビューが作成されると、selectの*がRT035テーブルに現在あるカラム名に置き換えられているように思えます。 –

+0

正確ではありません。ビューは "select * from ..."を使用します。しかし、テーブルの列を変更した場合、ビューは余分な作業をせずにこれらの変更を再選択しません。ストアドプロシージャ "sp_refreshview"を見て、これは仕事を行う必要があります。あなたはテーブルを変更するたびにそれを呼び出さなければなりません。 –

関連する問題