同义词表
同义词是用来实现下列用途的数据库对象:
- 为可以存在于本地或远程服务器上的其他数据库对象(称为基对象)提供备用名称。
- 提供抽象层以免对客户端应用程序基对象的名称或位置进行更改。
例如,名为 Server1 的服务器上有 Adventure Works的 Employee表。 若要从其他服务器 Server2引用此表,则客户端应用程序必须使用由四个部分构成的名称 Server1.AdventureWorks.Person.Employee。 另外,如果更改表的位置(例如,更改为其他服务器),则必须修改客户端应用程序以反映此更改。
若要解决这两个问题,您可以在 Server2上为 Server1 上的 Employee 表创建一个同义词 EmpTable。 这样,客户端应用程序只需使用由一个部分构成的名称 EmpTable来引用 Employee 表。 另外,如果 Employee 表的位置发生变化,则必须修改同义词 EmpTable以指向 Employee 表的新位置。 由于不存在 ALTER SYNONYM 语句,因此必须首先删除同义词 EmpTable,然后重新创建同名的同义词,但是要将同义词指向 Employee的新位置。
简而言之,言而总之,同义词表实现了在一个服务器上对其他服务器上数据库的增删查改的作用
同义词表的创建:
前提: 用户具有CREATE SYNONYM的权限,并拥有架构或具有ALRTER SCHEMA 权限。
创建同义词表
USE tempdb
go
create SYNONYM testSynonym
for dbo.person.table
go
插入到同义词表中
USE tempdb
go
insert into testSynonym(name)
value('test')
go