同义词在SQL中的优点?

时间:2011-03-17 19:39:11

标签: rdbms synonym

为什么使用同义词?,syNONYMS IN SQL的优点?

3 个答案:

答案 0 :(得分:6)

它们只是数据库中对象的简写名称。例如,如果在名为Products的数据库中有名称空间表,则可以创建名为ProductionControl.Inventory.Products的同义词。它们还可以方便地控制存储过程中对其他数据库的命名访问。如果您有引用其他数据库中的表的SP,则创建同义词并使用该代码可以在同义词的目标发生更改时为您提供更多控制权。这在您具有引用开发数据库的SP的情况下非常有用,但是当您部署到生产时,名称是不同的。所以你只需更新同义词,就可以了。

答案 1 :(得分:2)

来自MSDN Understanding Synonyms

  

同义词是一个数据库对象   用于以下目的:

     
      
  • 为另一个数据库对象提供备用名称   作为基础对象,可以存在   本地或远程服务器。

  •   
  • 提供一层保护客户端应用程序的抽象   从对名称的更改或   基础对象的位置。

  •   

答案 2 :(得分:0)

在某些企业系统中,您可能必须处理无法控制的远程对象。例如,由其他部门或团队维护的数据库。

同义词可以帮助您从SQL代码中分离底层对象的名称和位置。这样,即使您想要的表被移动到新的服务器/数据库或重命名,您也可以对同义词表进行编码。

例如,我可以写一个这样的查询:

insert into MyTable
(...)
select ... 
from remoteServer.remoteDatabase.dbo.Employee

但是如果服务器,数据库,架构或表发生更改,则会影响我的代码。相反,我可以为远程服务器创建一个同义词,并改为使用同义词:

insert into MyTable
(...)
select ... 
from EmployeeSynonym

如果底层对象更改位置或名称,我只需要更新我的同义词以指向新对象。

http://www.mssqltips.com/sqlservertip/1820/use-synonyms-to-abstract-the-location-of-sql-server-database-objects/