SQL Server 2005 链接服务器使用一例
来源:互联网 发布:网络彩票最新消息新闻 编辑:程序博客网 时间:2024/06/03 13:47
先说一下我遇到的环境,我手上有N个SQL Server Express Edition的数据库,他们的结构都是一样的,只是存放的数据不一样,数据库的个数将会增长。现在我希望能查询这些数据,其中比较笨的方法是,每个数据库都连接一下,执行SQL,示意图如下:
这种做法的缺点是:应用程序相对复杂,如果弄不好,后期的可维护性不好。
第二种方法是使用SQL Server的订阅发布功能,定时从各个数据库导出需要的数据到一个“中心数据库”,应用程序就比较简单,毕竟只是链接一个SQL Server啊,示意图如下:
但是配置SQL Server的订阅发布还是比较麻烦,而且SQL Server Express Edition的数据库的个数还会增长,每个都这样配置一下,工作量很大。
综合考虑以上两种方案的优缺点,使用SQL Server的链接服务器功能可以很容易地解决这个问题。
在中心数据库上,执行如下语句,建立“链接服务器”和“链接服务器登录”,语句如下:
exec sp_addlinkedserver '12.34.56.41','SQL Server';exec sp_addlinkedsrvlogin '12.34.56.41','false',null,'dbUser','p@ssw0rd'exec sp_addlinkedserver '12.34.56.42','SQL Server';exec sp_addlinkedsrvlogin '12.34.56.42','false',null,'dbUser','p@ssw0rd'..................................................exec sp_addlinkedserver '12.34.56.47','SQL Server';exec sp_addlinkedsrvlogin '12.34.56.47','false',null,'dbUser','p@ssw0rd'exec sp_addlinkedserver '12.34.56.48','SQL Server';exec sp_addlinkedsrvlogin '12.34.56.48','false',null,'dbUser','p@ssw0rd'
虽然语句比较多,但是不难发现完全可以找个“工具”生成一下,新增的数据库只需要执行类似的语句就可以了。
查询语句要加上服务器名,如下:
select e.ID as VMID, e.NAME, v.ip_address as vm_ip, v.power_state as power_state, v.guest_state as guest_state , h.ip_address as host_ipfrom [12.34.56.41].VIM_VCDB.dbo.VPX_ENTITY e, [12.34.56.41].VIM_VCDB.dbo.VPX_VM v , [12.34.56.41].VIM_VCDB.dbo.vpx_host hwhere e.ID = v.IDand v.host_id = h.id
为了让数据查询起来更加方便,我拣了一个视图,将多个数据库的数据“集中”起来
create view view_vm_infoas select e.ID as VMID, e.NAME, v.ip_address as vm_ip, v.power_state as power_state, v.guest_state as guest_state , h.ip_address as host_ipfrom [12.34.56.41].VIM_VCDB.dbo.VPX_ENTITY e, [12.34.56.41].VIM_VCDB.dbo.VPX_VM v , [12.34.56.41].VIM_VCDB.dbo.vpx_host hwhere e.ID = v.IDand v.host_id = h.id union all ................................................................................union all select e.ID as VMID, e.NAME, v.ip_address as vm_ip, v.power_state as power_state, v.guest_state as guest_state , h.ip_address as host_ipfrom [12.34.56.47].VIM_VCDB.dbo.VPX_ENTITY e, [12.34.56.47].VIM_VCDB.dbo.VPX_VM v , [12.34.56.47].VIM_VCDB.dbo.vpx_host hwhere e.ID = v.IDand v.host_id = h.id
但是查询链接服务器的性能不太好,于是,我在“中心”数据库建一张表,和视图的结构一样,用于存放试图中的数据。
- SQL Server 2005 链接服务器使用一例
- SQL SERVER使用链接服务器
- SQL Server链接服务器使用简介
- sql server 使用链接服务器远程查询
- SQL SERVER 链接服务器
- 链接SQL Server服务器
- sql server 2005 建立链接服务器
- SQL Server 2005链接服务器设置
- SQL Server 2005 创建链接服务器
- SQL SERVER链接服务器资料
- sql server 链接服务器问题
- [sql server][基础] 链接服务器
- sql server建立链接服务器
- SQL server链接服务器总结
- SQL SERVER创建链接服务器
- SQL Server 创建链接服务器
- SQL SERVER 创建链接服务器
- SQL Server 创建链接服务器
- Android Display System --- Surface Flinger
- strchr和strrchr的最前与最后
- C#和JAVA选哪一个比较好呢?
- cygwin的使用
- VC中获取软件自身的版本号
- SQL Server 2005 链接服务器使用一例
- 构建企业级项目管理体系(02)-如何做?
- poj2398
- 使用tinyxml的一些小窍门,插入时设置text
- 配置SQL Server 2005事务日志传送(非单机,非域环境,共享文件夹在主库)
- 关于博客
- sql在已有数据中查询每个月的最后一天
- 流行的免费搜索引擎网址
- 性能调优的步骤