• SAP HANA Video Tutorials

SAP HANA - SQL 同义词



SQL 同义词是数据库中表或模式对象的别名。它们用于保护客户端应用程序免受对对象名称或位置所做的更改的影响。

同义词允许应用程序无论拥有该表的用户的身份以及哪个数据库保存该表或对象,都能正常运行。

创建同义词语句用于为表、视图、包、过程、对象等创建同义词。

示例

有一个名为 Customer 的表属于 efashion,位于 Server1 上。要从 Server2 访问它,客户端应用程序必须使用 Server1.efashion.Customer 作为名称。现在,我们更改了 Customer 表的位置,客户端应用程序必须进行修改以反映此更改。

为了解决这些问题,我们可以在 Server2 上为 Server1 上的表创建 Customer 表的同义词 Cust_Table。因此,现在客户端应用程序必须使用单部分名称 Cust_Table 来引用此表。现在,如果此表的位置发生更改,则必须修改同义词以指向表的新位置。

由于没有 ALTER SYNONYM 语句,因此必须删除同义词 Cust_Table,然后使用相同的名称重新创建同义词,并将同义词指向 Customer 表的新位置。

公共同义词

公共同义词由数据库中的 PUBLIC 模式拥有。所有数据库用户都可以引用公共同义词。它们由应用程序所有者为表和其他对象(如过程和包)创建,以便应用程序用户可以查看这些对象。

语法

CREATE PUBLIC SYNONYM Cust_table for efashion.Customer;

要创建公共同义词,必须使用 PUBLIC 关键字,如下所示。

私有同义词

私有同义词用于数据库模式中,以隐藏表、过程、视图或任何其他数据库对象的真实名称。

只有拥有该表或对象的模式才能引用私有同义词。

语法

CREATE SYNONYM Cust_table FOR efashion.Customer;

删除同义词

可以使用 DROP Synonym 命令删除同义词。如果要删除公共同义词,则必须在 drop 语句中使用关键字public

语法

DROP PUBLIC Synonym Cust_table;
DROP Synonym Cust_table;
广告