如果为不是当前数据库中的表或视图创建同义词,且已删除了此表或视图,则同义词保留在注册的目录中。可以用已删除的表或视图的名称作为同义词为删除的表或视图创建新的同义词,但是该同义词值指向当前数据库(而非另一个数据库)中的的表或视图。
以此方式,可将表或视图移至新的位置并链接仍然有效的原始的同义词。以此方法最多可以链接 16 个同义词。
链接同义词以引用已重新定位的表对象对表或视图是可能的,但是对指向序列对象的同义词无效,因为 CREATE SYNONYM 只能为已注册在当前数据库中的序列定义同义词。
CREATE TABLE customer (lname CHAR(15)...);
CREATE SYNONYM cust FOR stores_demo@training:customer;
CREATE TABLE customer (lname CHAR(15)...);
DROP TABLE customer; CREATE SYNONYM customer FOR stores_demo@zoo:customer;
accntg 数据库服务器上的同义词 cust 现在指向 zoo 数据库服务器上的 customer 表。
CREATE TABLE customer (lname CHAR(15)...);
CREATE SYNONYM cust FOR stores_demo@training:customer;
DROP TABLE customer; CREATE TABLE customer (lastname CHAR(20)...);
accntg 数据库服务器上的同义词 cust 现在指向 training 数据库服务器上的 customer 表。