📜  SQL |代名词

📅  最后修改于: 2021-09-08 15:51:18             🧑  作者: Mango

SYNONYM为可能存在于本地或其他服务器上的数据库对象提供另一个名称,称为原始对象。同义词属于模式,同义词的名称应该是唯一的。同义词不能是附加同义词的原始对象,同义词不能引用用户定义的函数。

下面的查询为数据库中的每个同义词生成一个条目。此查询提供有关同义词元数据的详细信息,例如同义词名称和基础对象名称。

select * 
from sys.synonyms ;

注意:同义词依赖于数据库,不能被其他数据库访问。

句法 –

CREATE SYNONYM synonymname 
FOR servername.databasename.schemaname.objectname;
GO

例子 –
让我们假设 GFG 数据库的 Geektabtable,Geeekshschema 在名为 Server1 的服务器上。要从另一台服务器 Server2 引用此表,应用程序必须使用名为 Server1.GFG.Geeeksh.Geektab 的四部分。此外,如果表的位置要更改,例如,更改为另一台服务器,则必须修改应用程序以反映该更改。

为了解决这两个问题,可以在 Server2 上为 Server1 上的 Geektabtable 创建同义词 Geektable。现在,应用程序只需使用单部分名称 Geektable 来指向 Geektab 表。此外,如果 Geektab 表的位置发生变化,您必须修改同义词 Geektable 以指向 Geektab 表的新位置。

现在,让我们在名为 Server1 的服务器上为 GFG 数据库的 Geektab 表创建同义词,Geeeksh 模式。

CREATE SYNONYM Geektable  
FOR Server1.GFG.Geeeksh.Geektab;  
GO

使用同义词在 Server2 中查找输出。

SELECT ID, Name    
FROM Geektable;

输出 –

ID Name
1 Nisha
2 Mira
3 Punit
4 Ram
(4 row(s) affected)