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 

    申明

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

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

  • 相关阅读:
    启动或重启Oracle数据以及监听
    占坑 对自己的目标要求
    线程的使用经验(包括 Thread/Executor/Lock-free/阻塞/并发/锁等)
    接口的调用Client测试
    解决ftp登录问题:500 OOPS: cannot change directory:/home/xxx 500 OOPS: child died
    Tomcat7性能调优
    mysql性能调优
    四:JVM调优原理与常见异常处理方案
    redis的线程模型 与 压力测试
    为什么要用消息队列 及 自己如何设计一个mq架构
  • 原文地址:https://www.cnblogs.com/Athrun/p/1288548.html
Copyright © 2011-2022 走看看