zoukankan      html  css  js  c++  java
  • SQl跨服务器查询和跨库查询1

    一、SQl跨服务器查询的实现 SQl跨服务器查询的二种实现方法:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    select   *   from   OPENDATASOURCE(   
                      'SQLOLEDB',   
                      'Data   Source=远程ip;User     
                      ).库名.dbo.表名 
      
    insert   本地库名..表名   select   *   from   OPENDATASOURCE(   
                      'SQLOLEDB',   
                      'Data   Source=远程ip;User    
                      ).库名.dbo.表名

    或使用联结服务器:

    1
    2
    3
    EXEC   sp_addlinkedserver   '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL   Server};SERVER=远程名;UID=用户;PWD=密码;'  
    exec   sp_addlinkedsrvlogin     @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'  
    GO

    然后你就可以如下:

    1
    2
    3
    4
    select   *   from   别名.库名.dbo.表名   
    insert   库名.dbo.表名   select   *   from   别名.库名.dbo.表名   
    select   *   into   库名.dbo.新表名   from   别名.库名.dbo.表名   
    go

    1、使用 ODBC 的 Microsoft OLE DB 提供程序

    1
    EXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'

    如果加上参数@catalog,可以指定数据库

    1
    exec sp_addlinkedsrvlogin  @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'

    2、使用SQL Server 的 Microsoft OLE DB 提供程序

    1
    2
    exec sp_addlinkedserver @server='别名',@provider='sqloledb',@srvproduct='',@datasrc='远程服务器名'
    exec sp_addlinkedsrvlogin  @rmtsrvname='wzb',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'

    然后你就可以如下:

    1
    2
    3
    4
    select * from 别名.库名.dbo.表名
    insert 库名.dbo.表名 select * from 别名.库名.dbo.表名
    select * into 库名.dbo.新表名 from 别名.库名.dbo.表名
    go

    例1、 此示例在 SQL Server 的实例上创建一台名为 S1_instance1 的链接服务器, 该服务器使用 SQL Server 的 Microsoft OLE DB 提供程序。

    1
    2
    EXEC    sp_addlinkedserver    @server='S1_instance1', @srvproduct='',
                                    @provider='SQLOLEDB', @datasrc='S1instance1'

    例2、 --建立链接服务器

    1
    2
    3
    4
    5
    6
    7
    8
    9
    EXEC sp_addlinkedserver 'joe','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=192.168.0.1;UID=sa;PWD=123;'
    --建立链接服务器登录映射
    exec sp_addlinkedsrvlogin  @rmtsrvname='joe',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='123'
    go
    --查询数据
    select * from joe.schooladmin.dbo.agent  
    --删除链接服务器登录映射和链接服务器:
    exec sp_droplinkedsrvlogin 'joe' ,'sa'
    exec sp_dropserver  'joe'

    小结:如果是单查询的话,建议使用第一种方法,如果是多条查询的话,建议使用第二种方法。
    二、SQl跨数据库查询的实现

    1
    select * from [AAA]..Table1 a inner join [BBB]..Table2 b on a.id1 = b.id2
  • 相关阅读:
    Citrix的一个安装问题(The Configuration file(s) for this site could not be read )
    MDOP(1) : AppV 命令行刷新
    BPC (9) SAP BI & BPC 安装 : 一个外行眼里的千奇百怪 (4)
    BPC (12) 服务账号密码重置(1)
    BPC (10) 二种平台的安装
    BPC (9) SAP BI & BPC 安装 : 一个外行眼里的千奇百怪 (3)
    BPC (11) – NW BPC 7.04 三个Bug
    一本30多年前的桥牌书
    使用XCode联机调试你的iOS应用
    $_SERVER 数据的一系列数据
  • 原文地址:https://www.cnblogs.com/LiaoHao/p/3288879.html
Copyright © 2011-2022 走看看