一个零售企业有多家零售店。
使用多台sql数据库服务器(数据库中的表结构、存储过程等都是相同的,只是数据不一样),分别保存不同零售店的数据。
现有如下问题需要请教:
1、 如何进行跨服务器的数据操作?
2、 如何将多台服务器中的数据进行统计汇总?
3、如何在不同服务器间进行数据交换(不是同步)?

解决方案 »

  1.   

    1、如果经常性操作最好用链接服务器
    2、select * from openrowset('sqloledb','IP';SA;'',数据库.dbo.表)
      

  2.   

    1、 如何进行跨服务器的数据操作? 
    sp_linkserver
    openrowset
    opendatasource
    BCP
    DTS2、 如何将多台服务器中的数据进行统计汇总? sp_linkserver
    openrowset
    opendatasource
    BCP
    DTS3、如何在不同服务器间进行数据交换(不是同步)?DTS
      

  3.   

    1、 如何进行跨服务器的数据操作? 
    2、 如何将多台服务器中的数据进行统计汇总? 
    3、如何在不同服务器间进行数据交换(不是同步)?要解决这三个问题,只要完成几个服务器之间建立相互信任关系,建立相互信任语句:--创建链接服务器
    exec sp_addlinkedserver  'server_lnk','','SQLOLEDB','远程服务器名或ip地址'
    exec sp_addlinkedsrvlogin ' server _lnk','false',null,'用户名','密码'
    exec sp_serveroption ' server _lnk','rpc out','true' --这个允许调用链接服务器上的存储过程
    go--查询示例
    select * from srv_lnk.数据库名.dbo.表名--导入示例
    select * into 表 from srv_lnk.数据库名.dbo.表名go
    --以后不再使用时删除链接服务器
    exec sp_dropserver 'srv_lnk','droplogins'--如果只是临时访问,可以直接用openrowset
    --查询示例
    select * from openrowset('SQLOLEDB'
    ,'sql服务器名';'用户名';'密码'
    ,数据库名.dbo.表名)--导入示例
    select * into 表 from openrowset('SQLOLEDB'
    ,'sql服务器名';'用户名';'密码'
    ,数据库名.dbo.表名)