在进行一些企业应用开发时候,经常地需要在Sqlserver2000里面,直接的调用其它数据库的数据,来实现数据共享和更新,当创立链接服务器之后,关于调用数据时候的方案,一般分为两种:
1。当远程表数据量较小几百条或更小可以采用直接调用方案,直接在引用时候,用sql查询;例如:select * from NEWE..CAP.EP_ITE
2。部分表的数据量很大,如果使用相对较多时候,每一次都直接调用链接数据库,不仅增大了传输数据量影响速度,而且在网络或是远程数据库出问题时候影响本地的使用,因此建议采用建立本地表,然后定期检查更新来使用。
以建立对 Oracle8i 的链接服务器为例来说明,步骤如下:
1。首先SqlServer2000的服务器上,需要安装Oracle8i Client,通过Net8 Administration 里面的 Net8 Configuration Assistant或者利用Net Easy Config 来建立对Oracle8的网络服务名,然后再SqlServer里面建立链接服务器,填好“数据源”也就是前面建立好的网络服务名,在“安全性”里面,使用“远程登录的安全上下文”方式;
2。建立作业,建议采用调用专门的procedure来实现数据的检查更新;对于Oracle数据库主要是增加数据情况,采用提前比较远程表和本地表总数方式比较,不同则插入新增数据;对于Oracle经常存在原来数据更新情况则只能定期更新本地表,建议尽量少采用delete和insert方式,多采用借助临时表的update方式。
3。在作业里面,执行调用更新链接服务器和本地表数据时候,总是会出现下面的错误,
执行用户: xzc。不允许用 SETUSER 激活的 Windows NT 用户进行远程访问。 [SQLSTATE 42000](错误 7410). 步骤失败。
一般时候,我们采用将该更新作业的“所有者”改为本地系统管理员方式启动就可以啦,另外注意数据更新时候的优化分析,应该尽量减少对于sqlServer数据库的insert和delete操作,并且经常需要大量更新的数据表,建议不要建立自动增加的ID。
以上属于个人应用体会,欢迎探讨指正!