您的位置:首页 > 数据库

SQL SERVER 2005中同义词实例

2014-08-19 16:47 190 查看
在SQLSERVER2005中,终于出现了同义词了,大大方便了使用。下面举个小例子说明

同义词是用来实现下列用途的数据库对象:

为本地或远程服务器上的另一个数据库对象(称为“基对象”)提供备选名称。

提供一个提取层,该层防止客户端应用程序的基对象的名称或位置被更改。

例如,名为Server1的服务器上有AdventureWorks的Employee表。若要从另一台服务器Server2引用此表,客户端应用程序必须使用由四个部分构成的名称Server1.AdventureWorks.Person.Employee。另外,如果更改了表的位置(例如,更改到另一台服务器上),那么需要修改客户端应用程序以反映所做的更改。之前在/article/4632373.html中已经归纳了一些特性,现在在举出例子,例子来自老外的。
首先建立两个数据库
CreateDatabaseRiverResearch
go
UseRiverResearch
go

然后分别为两个数据库建立模式以及表,存储过程如下

UseRainbowResearch
go
CreateSchemaRain
go
CreateSchemaSnow
go
CreatetableRainbowresearch.Rain.Cities(idint,Cityvarchar(200))
go
insertintoRainbowresearch.Rain.Citiesselect1,'Hongkong'
insertintoRainbowresearch.Rain.Citiesselect2,'Tokyo'
insertintoRainbowresearch.Rain.Citiesselect3,'Beijing'
insertintoRainbowresearch.Rain.Citiesselect4,'Taipei'
insertintoRainbowresearch.Rain.Citiesselect5,'Seoul'
insertintoRainbowresearch.Rain.Citiesselect6,'Mumbai'
go
CreateprocedureRain.DisplayCities@idint
as
SelectCityfromRainbowresearch.Rain.Citieswhereid=@id
go
CreatetableRainbowresearch.Snow.Cities(idint,Cityvarchar(200))
go
insertintoRainbowresearch.Snow.Citiesselect1,'Tokyo'
insertintoRainbowresearch.Snow.Citiesselect2,'Seoul'
insertintoRainbowresearch.Snow.Citiesselect3,'Moscow'
insertintoRainbowresearch.Snow.Citiesselect4,'NewYork'
go
CreateprocedureSnow.DisplayCities@idint
as
SelectCityfromRainbowresearch.Snow.Citieswhereid=@id
go
UseRiverResearch
go
CreateSchemaRiver
go
go
CreatetableRiverResearch.River.Cities(idint,Cityvarchar(200))
go
insertintoRiverResearch.River.Citiesselect1,'Hongkong'
insertintoRiverResearch.River.Citiesselect2,'Tokyo'
insertintoRiverResearch.River.Citiesselect3,'Beijing'
insertintoRiverResearch.River.Citiesselect4,'Taipei'
insertintoRiverResearch.River.Citiesselect5,'Seoul'
go
CreateprocedureRiver.DisplayCities@idint
as
SelectCityfromRiverResearch.River.Citieswhereid=@id
Go

这里,在RainbowResearch数据库里建立了两个模式,rain,snow,再分别在这两个模式下建立了city表,而在

riversearch数据库里也建立了个模式river,也建立了表cities,就这么简单,不详细表述。

之后,我们查询刚才建好的内容


select*fromRiverResearch.River.Cities
go
select*fromRainbowresearch.Rain.Cities
go
select*fromRainbowresearch.Snow.Cities
go

最后,我们建立同义词

useRainbowResearch
go
createSYNONYMRiverCitiesforRiverResearch.River.Cities
go
createSYNONYMRainCitiesforRainbowresearch.Rain.Cities
go
createSYNONYMSnowCitiesforRainbowresearch.Snow.Cities
go
useRiverResearch
go
createSYNONYMRiverCitiesforRiverResearch.River.Cities
go
createSYNONYMRainCitiesforRainbowresearch.Rain.Cities
go
createSYNONYMSnowCitiesforRainbowresearch.Snow.Cities
go

看到了么,简单许多了

再来查询一次,这次简单多了

UseRiverResearch
go
Select*fromRiverCities
Select*fromRainCities
Select*fromSnowCities
Go
UseRainbowResearch
go
Select*fromRiverCities
go
Select*fromRainCities
go
Select*fromSnowCities
go
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: