zoukankan      html  css  js  c++  java
  • 如何让远程数据库中的1张表导入到本地数据库中

    在本地数据库执行如下的语句:
    insert into Info
    select *
    from OPENDATASOURCE('SQLOLEDB', 'Data Source=[Server Name];User ID=[User ID];Password=[Password]').MyServer.DBO.Info

    说明:
    (1)Server Name:数据库服务器的名称,也可以是IP地址。
    (2)User ID:登录服务器的用户ID号。
    (3)Password:用户密码。
    (4)下面的语句最好写在一个存储过程中执行,一定不要放在SQL属性中。

    OPENDATASOURCE

    不使用链接的服务器名,而提供特殊的连接信息,并将其作为四部分对象名的一部分。

    语法

    OPENDATASOURCE ( provider_name, init_string )

    参数

    provider_name

    注册为用于访问数据源的 OLE DB 提供程序的 PROGID 的名称。provider_name 的数据类型为 char,没有默认值。

    init_string

    连接字符串,这些字符串将要传递给目标提供程序的 IDataInitialize 接口。提供程序字符串语法是以关键字值对为基础的,这些关键字值对由分号隔开,例如:"keyword1=value; keyword2=value."

    在 Microsoft® Data Access SDK 中定义了基本语法。有关所支持的特定关键字值对的信息,请参见提供程序中的文档。下表列出 init_string 参数中最常用的关键字。

    关键字 OLE DB 属性 有效值和描述
    数据源 DBPROP_INIT_DATASOURCE 要连接的数据源的名称。不同的提供程序用不同的方法对此进行解释。对于 SQL Server OLE DB 提供程序来说,这会指明服务器的名称。对于 Jet OLE DB 提供程序来说,这会指明 .mdb 文件或 .xls 文件的完整路径。
    位置 DBPROP_INIT_LOCATION 要连接的数据库的位置。
    扩展属性 DBPROP_INIT_PROVIDERSTRING 提供程序特定的连接字符串。
    连接超时 DBPROP_INIT_TIMEOUT 超时值,在该超时值后,连接尝试将失败。
    用户 ID DBPROP_AUTH_USERID 用于该连接的用户 ID。
    密码 DBPROP_AUTH_PASSWORD 用于该连接的密码。
    目录 DBPROP_INIT_CATALOG 连接到数据源时的初始或默认的目录名称。

    注释

    OPENDATASOURCE 函数可以在能够使用链接服务器名的相同 Transact-SQL 语法位置中使用。因此,就可以将 OPENDATASOURCE 用作四部分名称的第一部分,该名称指的是 SELECT、INSERT、UPDATE 或 DELETE 语句中的表或视图的名称;或者指的是 EXECUTE 语句中的远程存储过程。当执行远程存储过程时,OPENDATASOURCE 应该指的是另一个 SQL Server。OPENDATASOURCE 不接受参数变量。

    与 OPENROWSET 函数类似,OPENDATASOURCE 应该只引用那些不经常访问的 OLE DB 数据源。对于访问次数稍多的任何数据源,请为它们定义链接的服务器。无论 OPENDATASOURCE 还是 OPENROWSET 都不能提供链接的服务器定义的全部功能,例如,安全管理以及查询目录信息的能力。每次调用 OPENDATASOURCE 时,都必须提供所有的连接信息(包括密码)。

    示例

    下面的示例访问来自某个表的数据,该表在 SQL Server 的另一个实例中。

    SELECT   *
    FROM      OPENDATASOURCE(
             
    'SQLOLEDB',
             
    'Data Source=ServerName;User ID=MyUID;Password=MyPass'
             ).Northwind.dbo.Categories

    下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。

    SELECT * 
    FROM OpenDataSource'Microsoft.Jet.OLEDB.4.0',
      
    'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions

    如:

    select * from OPENDATASOURCE('SQLOLEDB','Data Source=192.168.0.123;User ID=[sa];Password=[pwd]).database.DBO.[table] where id=33266

    SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。

  • 相关阅读:
    新版《星光大道》
    acl 3.1.2版本发布,网络通信与服务器编程框架
    批量将 *.c 预处理为 *.i (递归处理文件夹中所有文件)gcc -E
    texmaker——unknown graphics extension .eps
    TexMaker
    中国计算机学会推荐国际学术会议和期刊目录
    浅谈阶梯博弈
    【hdu 3389】Game
    【hdu 3537】Daizhenyang's Coin
    【hdu 3863】No Gambling
  • 原文地址:https://www.cnblogs.com/qiangshu/p/1803622.html
Copyright © 2011-2022 走看看