zoukankan      html  css  js  c++  java
  • 聯接遠程務器進行操作

    /*
    EMSC.DBO.SIS是一個外部數據庫的TABLE
    sis_styles_b是本地的一個數據庫的表.
    */

    select top 10 a.*,b.sis_styles_id from openrowset('MSDASQL',   'DRIVER={SQL Server};SERVER=255.255.255.255;UID=user_id;PWD=password',EMSC.dbo.sis)  as a
     
    left join sis_styles_b b on a.sis_id=b.sis_id

    EXEC sp_addlinkedserver 
        
    @server = 'EM'--被访问的服务器别名
        @srvproduct = '',
        
    @provider = 'MSDASQL',
        
    @provstr = 'DRIVER={SQL Server};SERVER=192.168.9.1;UID=mscuser;PWD=;Database=emsc'
    EXEC sp_addlinkedsrvlogin 
         
    'EM'--被访问的服务器别名
         'false'
         
    NULL
         
    'mscuser'--帐号
         '' --密码

    SELECT TOP 10  * FROM EM.EMSC.dbo.SIS  ORDER BY DOC_DATE DESC

    sp_dropserver 
    'EM','droplogins'--移除聯接


    由于业务逻辑的多样性 
    经常得在sql server中查询不同数据库中数据 
    这就产生了分布式查询的需求 
    现我将开发中遇到的几种查询总结如下:


    1.access版本 

    --建立连接服务器 
    EXEC sp_addlinkedserver 
    --要创建的链接服务器名称  
    'ai',             
    --产品名称               
    'access',     
    --OLE DB 字符 
    'Microsoft.Jet.OLEDB.4.0',  
    --数据源 
    --
    格式: 
    --
     盘符:\路径\文件名 
    --
     \\网络名\共享名\文件名  (网络版本) 
    'd:\testdb\db.mdb' 
    GO 


    --创建链接服务器上远程登录之间的映射 
    --
    链接服务器默认设置为用登陆的上下文进行 
    --
    现在我们修改为连接链接服务器不需使用任何登录或密码 
    exec sp_addlinkedsrvlogin 'ai','false' 
    go 


    --查询数据 
    select * from aimytable 
    go 


    2.excel版本

    --建立连接服务器 
    EXEC sp_addlinkedserver 
    --要创建的链接服务器名称  
    'ai_ex',             
    --产品名称               
    'ex',     
    --OLE DB 字符 
    'Microsoft.Jet.OLEDB.4.0',  
    --数据源 
    --
    格式: 
    --
     盘符:\路径\文件名 
    --
     \\网络名\共享名\文件名  (网络版本) 
    'd:\testdb\mybook.xls' , 
    null
    --OLE DB 提供程序特定的连接字符串 
    'Excel 5.0' 
    GO 


    ----创建链接服务器上远程登录之间的映射 
    --
    链接服务器默认设置为用登陆的上下文进行 
    --
    现在我们修改为连接链接服务器不需使用任何登录或密码 
    exec sp_addlinkedsrvlogin 'ai_ex','false' 
    go 


    --查询数据 
    select * from ai_exsheet3$ 
    go 


    3.ms sql版本 

    --建立连接服务器 
    EXEC sp_addlinkedserver 
    --要创建的链接服务器名称  
    'ai_mssql',             
    --产品名称               
    'ms',     
    --OLE DB 字符 
    'SQLOLEDB',  
    --数据源 
    '218.204.111.111,3342' 
    GO 


    --创建链接服务器上远程登录之间的映射 
    EXEC sp_addlinkedsrvlogin 
    'ai_mssql'
    'false'
    NULL
    --远程服务器的登陆用户名 
    'zhangzhe'
    --远程服务器的登陆密码 
    'fish2231' 
    go 


    --查询数据 
    select * from ai_mssql.pubs.dbo.jobs 
    go 


    --还有一个更简单的办法 
    --
    这种方式在链接服务器建立后,它是默认开放RPC的 

    --建立连接服务器 
    EXEC sp_addlinkedserver 
    --要创建的链接服务器名称 
    --
    这里就用数据源作名称 
    '218.204.111.111,3342'
    'SQL Server' 
    GO 


    --创建链接服务器上远程登录之间的映射 
    EXEC sp_addlinkedsrvlogin 
    '218.204.111.111,3342'
    'false'
    NULL
    --远程服务器的登陆用户名 
    'zhangzhe'
    --远程服务器的登陆密码 
    'fish2231' 
    go 


    --查询数据 
    select * from [218.204.253.131,3342].pubs.dbo.jobs 
    go 


    4.Oracle版本

    --建立连接服务器 
    EXEC sp_addlinkedserver 
    --要创建的链接服务器名称  
    'o'
    --产品名称               
    'Oracle'
    --OLE DB 字符 
    'MSDAORA'
    --数据源 
    'acc' 
    GO 


    --创建链接服务器上远程登录之间的映射 
    EXEC sp_addlinkedsrvlogin 
    'o'
    'false'
    NULL
    --Oracle服务器的登陆用户名 
    'F02M185'
    --Oracle服务器的登陆密码 
    'f02m185185' 
    go 

    --查询数据 
    --
    格式:LinkServer..Oracle用户名.表名 
    --
    注意用大写,因为在Oracle的数据字典中为大写 
    select * from o..F02M185.AI 
    go 




    希望上面提到的知识对你有所提示 
    当然欢迎交流和指正 

    author:aierong 
    blog:http:
    //www.cnblogs.com/aierong 
    email:aierong
    @126.com 

    申明

    非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!

    博文欢迎转载,但请给出原文连接。

  • 相关阅读:
    突然想到一个问题:有关 cqrs 分离
    Oracle 12C 数据库安装与配置
    Android 绑定服务的作用 (参考,不确定他说的是不是对的)
    SSM框架整合(一)
    常见数据库优化方案(九)
    大量文件存储
    MyBatis 参数传递小知识(划重点)|划掉 MyBatis 常见小debug
    MyBatis 自动代码生成器
    常见数据库优化方案(八)
    常用数据库优化方案(五)
  • 原文地址:https://www.cnblogs.com/Athrun/p/1288548.html
Copyright © 2011-2022 走看看