开发者

Database name while referencing tables - Sybase

How do I get away with hardcoding the database name in referencing a table within a stored procedure. For example there are two databases db1 and db2. I am writing a stored procedure in db2 which references two tables, one from db1 and another from db开发者_运维技巧2. Both are on the same sybase server.


If I understand your question correctly, on the one hand, in your stored procedure you can refer to the table in the same database directly by name

SELECT  ...
FROM    table_in_db2

You can refer to a table in database db1 by prefixing the database name and an empty owner:

SELECT  ...
FROM    db1..table_in_db1

On the other hand, if you want to avoid hard-coding database names in the procedure you might create a view in database db2 that references the db1 table:

CREATE VIEW view_in_db2
AS
    SELECT  *
    FROM    db1..table_in_db1

and use that in the procedure:

SELECT  ...
FROM    view_in_db2


You need to keep the code portable, involve 2 databases, but avoid referencing databases by name. Then you can create proxy tables (or proxy views, if such views exist in 12.5). Refer to proxy tables as to local objects.

This will work, but will require some extra care, every time you move/change databases. But anyway the separation of concerns you are after can be achieved.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜