SYBASE如何跨server操作.doc_第1页
SYBASE如何跨server操作.doc_第2页
SYBASE如何跨server操作.doc_第3页
SYBASE如何跨server操作.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SYBASE如何跨server操作?例子两台ASE服务器名称为Server1,Server2,需要在Server1中建立代理表,并通过Server1上的存储过程对Server1自身及Server2中表进行更新1.建立代理表在Server2数据库pubs2建立表t_testproxycreatetablet_testproxy(idint,namechar(10)在Server1数据库test中添加代理表信息usetestgocreateproxy_tablet_testproxyatServer2.pubs2.dbo.t_testproxy代理表名与原表名可以不同Server1上查看代理表信息如下:NameOwnerObject_type-t_testproxydbousertableData_located_on_segmentWhen_created-defaultNov28200211:59AMColumn_nameTypeLengthPrecScaleNullsDefault_nameRule_nameAccess_Rule_nameIdentity-idint4NULLNULL0NULLNULLNULL0namechar10NULLNULL0NULLNULLNULL0exp_row_sizereservepagegapfillfactormax_rows_per_pageidentity_gap-10000concurrency_opt_threshold-0ObjectisRemote/External-presales.pubs2.dbo.t_testproxy/可从此处看出代理表所指向的真正对象ObjectcreatedwithexistingoptionObjectdoesnothaveanyindexes.Nodefinedkeysforthisobject.Objectisnotpartitioned.LockschemeAllpagesTheattributeexp_row_sizeisnotapplicabletotableswithallpageslockscheme.Theattributeconcurrency_opt_thresholdisnotapplicabletotableswithallpageslockscheme.2.代理表测试Server2上插入数据:insertintot_testproxyvalues(1,Server2)Server2上插入数据:insertintot_testproxyvalues(2,Server1)Server1上查询数据:select*fromt_testproxyidname-1Server22Server13.视图测试在Server1上test数据库中建立用户表t_testproxyviewcreatetablet_testproxyview(idint,addressvarchar(30)插入测试数据insertintot_testproxyview(1,Chengdu)insertintot_testproxyview(2,Sichuan)insertintot_testproxyview(3,sky)建立视图createviewv_proxyasselecta.*,b.addressfromt_testproxya,t_testproxyviewbwherea.id=b.id查询视图select*fromv_proxyidnameaddress-1Server2Chengdu2Server1Sichuan视图的更新updatev_proxysetaddress=testwhereid=2更新本地表执行成功updatev_proxysetname=testwhereid=2更新远程表报告错误如下:Theoptimizercouldnotfindauniqueindexwhichitcouldusetoscantablepubs2.dbo.t_testproxyforcursorC11.必须为远程表建立主键或者唯一索引Server2上执行(不能在Server1上为代理表建立主键):altertablet_testproxyaddconstraintpk_t_testproxyprimarykey(id)updatev_proxysetname=testwhereid=2再次更新代理表,成功idnameaddress-1Server2Chengdu2testtest对试图中本地表及代理表同时作更新updatev_proxysetname=test1,address=test1whereid=1报告错误:Viewv_proxyisnotupdatablebecausetheFROMclausenamesmultipletables.Sybase不支持在视图中一次更新多表4.存储过程测试在Server1上createprocp_proxy(idint)asbeginbegintranupdatet_testproxysetname=test3whereid=id-更新代理表updatet_testproxyviewsetaddress=test3whereid=idcommitendexecp_proxy2idnameaddress-1Server2Chengdu2test3test3结论:可以在存储过程中对本地及远程表进行操作,并利用事务来保证一致性需要注意一点的是:建代理表时,远程表的结构数据已经存储在了本地,并且不会检测该表的结构是否发生改变,因此远程表的结构发生改变时,本地是不知道的,需要重新创建代理表,相当于重新刷新本地的存储的结构.5、代理表的索引问题。如上注意中提到,修改表结构后,需

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论