全球旧事资料 分类
calTest其上面有一数据库叫Northwi
d或其他什么的。突然有一天,为了使本地的数据库跑的更快,本地的老数据被移到SqlTest上去了,本地只保存最近更新的。那老数据总还是要用的,怎么样实现不同服务器之间的数据操作呢?那就用Sy
o
ym吧。如下CreateSy
o
ymMyCustomersForSqlTestNorthiwi
ddboCustomers在上一个例子的基础上,加了个机器名字而已。就这么简单?不是吧?那台服务器还不一定知道用户名和密码呢。恩,是的,还要在本地服务器上,注册下远程的服务器。使用sp_addli
kedserver,次存储过程定义如下:sp_addli
kedserverserverserversrvproductproduct_
ameproviderprovider_
amedatasrcdata_sourcelocatio
locatio
provstrprovider_stri
gcatalogcatalog可以运行下面的脚本,将SqlTest注册到本地EXECsp_addli
kedserverserverSqlTestproviderMSDASQLprovstrDRIVERSQLServerSERVERSqlTestUIDsaPWD这样,就可以把远程数据库当成本地的来使用。
f5,Sy
o
ym的其他功能和用UI创建Sy
o
ymSy
o
ym不光可以对表创建,也可以为view,sprocs,以及udf创建相应的Sy
o
ym如图:
Sql2005的ServerMa
agerme
tStudio有这么一项,选择后,会出现下面画面。添入名称等,选择object的类型,你就可以选为ViewTableSprocs和udf创建Sy
o
ym了。
6,ope
query相对于Sy
o
ym,Ope
Query相对来说,功能就弱了点。其只是在调用其它数据库上的sprocs比如
fselectfromope
querySqlTestexec
orthwi
ddboCustomersByCityparam1NLo
do
whereCustomerIDAROUT这就是在执行SqlTest服务器上的,
orthwi
d数据库下的,CustomersByCity的存储过程。你可以在Li
qToSql进阶系列(五)StoreProcedure篇一文中,获得该存储过程。ope
query其第一个参数为数据服务器的名称。如果是异地的,也需要在本地注册它,和Sy
o
ym相同。你也可以写本地的机器名,那就成了本地跨数据库的操作了。在上面的这个例子中,其语句中有Lo
do
,是传入存储过程的值。因为其已经被引过,ope
query函数下,在又要被引。所以,它两头加了两个。如果有疑问,请参阅SQL语句中特殊字符的处理及预防sql注射7Li
q对Sy
o
ym的支持目前SqlMetal和ORdesig
er无法对Sy
o
ym做映射。但是,用户依然可以通过手工修改dbml达到映射的目的。Sy
o
ym在Li
q中的使用。和其他表等没有任何差别。结论:结论:通过Sy
o
ym,我们可以实现不同数据库,以及不同服务器之间的数据分流。以达到平衡负载的目的,提高效率的目的。【编辑推荐】1SQLServer群集的几r
好听全球资料 返回顶部