2011-03-15 34 views
1

我正在努力逐步淘汰遺留系統。由於這是一個具有多個集成的相當大的系統,即使在替換遺留系統之後,數據庫仍將繼續存在。Sybase表的多個別名?

現在,問題是數據庫中的所有表名都有數字名稱:「RT001」,「RT002」,「RT003」等。有超過100個表格就很難知道每個表格是什麼,以及如何才能加入以掌握特定數據。

有沒有辦法在sybase中定義全局表別名,以便sybase知道SQL「select * from Order,OrderItems where ...」是指表RT035和RT036?通過這種方式,我可以將原始表名稱保留爲RT035,同時具有「訂單」等別名,甚至是「RT035_Order」。

回答

2

據我所知在Sybase ASE中不存在「同義詞」(這就是它在Oracle數據庫中所稱的名稱)。但你仍然可以使用簡單的視圖來做基本相同的事情:

CREATE VIEW Order AS SELECT * FROM RT035; 
+0

這個視圖然後會更新它創建該視圖的表上發生的任何更改嗎? –

+0

我在問,因爲,似乎創建視圖時,select中的*被替換爲當前在RT035表中的列名稱。 –

+0

不完全。該視圖將使用「select * from ...」。但是,如果您修改了任何表列,那麼視圖將不會在沒有額外工作的情況下反映這些更改。看看存儲過程「sp_refreshview」,這應該做的工作。無論何時修改表格,您都必須打電話給他。 –