SQL Server 2005 中感受Synonym | Leesoft.com.cn

Synonym
查看 编辑 大纲
您的 Story 已创建。
由 stelee 于 周三, 11/21/2007 - 19:56 提交。 programming
有人说,在整个应用程序中,数据库是相对不变的。可惜随着业务逻辑的频繁改动,这个相对也渐渐变成了不对。如果没有变化,那么对于我们软件开发来说,将是一个天堂。可是实际的世界总是动态的。所以不要期望数据库能维持多久的稳定。SQL Server2005中提供了Synonym功能,可以看做面对变化而生的一种解决方案。
所谓Synonym,字面上理解很简单,就是同义词。也就是可以为其他的表建立别名,别看这个小小的功能——所谓其他的表可以是其他数据库中的表也可以是其他SQL Server服务器中的表。
典型的应用场景:
比如某用户写了很多的stored procedure,里面用到了[Item]表。现在业务逻辑的改变,要求将Item表放到另外一个特定的数据库中,并使用新的名字[NewDatabase][dbo][CItem]。Replace All大法可不是一个好的解决方案哦。最简单的办法,就是建立Synonym,就像这样:
Create Synonym Item FOR NewDatabase.dbo.CItem
这样就可以使用以前所有的SQL语句了,而不用改变任何事情。
如果我们把CItem表移到另外的SQL Server服务器上呢?我们依然可以:
Create Synonym Item FOR NewSQLServerrInstance.NewDatabase.dbo.CItem
当然纯粹这么做还是不够的,连到另外的SQL Server上总需要一定的仪式才显得初来这是一个很严肃的事情呢嘛。所以,我们需要注册这个SQL Server Instance,通过使用如下的存储过程:

sp_addlinkedserver [ @server = ] 'server'
    
[ , [ @srvproduct = ] 'product_name' ]
    [ , [ @provider = ] 'provider_name' ]
    [ , [ @datasrc = ] 'data_source' ]
    [ , [ @location = ] 'location' ]
    [ , [ @provstr = ] 'provider_string' ]
    [ , [ @catalog = ] 'catalog' ]
也就是说,我们需要:


EXEC sp_addlinkedserver
   @server = 'NewDatabase',
   @provider = 'MSDASQL',
   @provstr = 'DRIVER={SQL Server};SERVER=192.168.X.X;UID=sa;PWD=******;'


就可以使用这个SQL Server Instance了。
本文转自
http://www.leesoft.com.cn/Synonym_in_SQL_Server_2005

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值