📜  SQL |代名词

📅  最后修改于: 2021-08-27 18:05:29             🧑  作者: Mango

SYNONYM为可能存在于本地或另一台服务器上的数据库对象(称为原始对象)提供了另一个名称。同义词属于架构,同义词的名称应唯一。同义词不能是其他同义词的原始对象,并且同义词不能引用用户定义的函数。

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

select * 
from sys.synonyms ;

注意:同义词是数据库相关的,其他数据库无法访问。

句法 –

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

例子 –
让我们假设GFGdatabase的Geektabtable,名为Server1的服务器上的Geeekshschema。要从另一个服务器Server2引用此表,应用程序必须使用四部分组成的名为Server1.GFG.Geeeksh.Geektab。同样,如果要将表的位置更改为(例如)另一台服务器,则必须修改应用程序以反映该更改。

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

现在,让我们为GFG数据库的Geektab表(服务器Server1上的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)