【问题标题】:Multiple aliases for a Sybase table?Sybase 表的多个别名?
【发布时间】:2017-07-08 05:28:44
【问题描述】:

我正在与一个试图逐步淘汰旧系统的团队合作。由于这是一个具有多个集成的相当大的系统,因此即使在替换旧系统之后,数据库也将继续存在。

现在,问题是数据库中的所有表名都有数字名称:“RT001”、“RT002”、“RT003”等。有超过 100 个表,很难知道每个表是什么,并且如何加入以获取特定数据。

有没有办法在 sybase 中定义一个全局表别名,以便 sybase 知道 SQL“select * from Order, OrderItems where ...”指的是表 RT035 和 RT036?这样,我可以将原始表名称保留为 RT035,同时使用“Order”之类的别名,甚至“RT035_Order”来引用它。

【问题讨论】:

    标签: alias sybase


    【解决方案1】:

    据我所知,在 Sybase ASE 中没有“同义词”(这就是它在 Oracle 数据库中的名称)之类的东西。但是你仍然可以使用简单的视图来做基本相同的事情:

    CREATE VIEW Order AS SELECT * FROM RT035;
    

    【讨论】:

    • 这个视图是否会随着它创建视图的表上发生的任何变化而更新?
    • 我问是因为,似乎在创建我的视图时,选择中的 * 被替换为当前在 RT035 表中的列名。
    • 不完全是。该视图将使用“select * from ...”。但是,如果您修改任何表格列,则视图不会反映这些更改而无需一些额外的工作。看一下存储过程“sp_refreshview”,这应该可以完成工作。每次修改表格时都必须调用它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-04
    • 2011-06-24
    • 1970-01-01
    • 1970-01-01
    • 2018-06-09
    相关资源
    最近更新 更多