zoukankan      html  css  js  c++  java
  • [翻译]使用OPENROWSET函数

    Q:我想要在一个即席查询(ad hoc query)中从一个远程的OLEDB数据源或使用批量载入(BULK LOAD)的方式将数据导入到SQL Server表内?

    A:
    您可以使用Transact-SQL中的OPENROWSET函数来获取从任何支持注册OLEDB的提供程序(registered OLD DB provider)的数据源获取数据,诸如远程SQL Server实例或Microsoft Access。如果您使用OPENROWSET来从一个SQL Server实例获取数据,那么该实例必须被配置为允许即席分布式查询。

    要将实例配置为支持即席查询,需要使用sp_configure系统存储过程来进行如下设置:

    EXEC sp_configure 'show advanced options', 1;
    GO
    RECONFIGURE;
    GO
    EXEC sp_configure 'Ad Hoc Distributed Queries', 1
    GO
    RECONFIGURE;
    GO

    一旦您已经配置了远程SQL Server实例,您可以使用OPENROWSET函数来查询该实例。该函数应该被包含在SELECT语句的FROM语法中。如下的语法显示了该函数的基本元素:

    OPENROWSET('provider', 'connection string', target)

    该范例说明了如何使用OPENROWSET函数进行查询:

    SELECT Employees.*
    FROM OPENROWSET(
    'SQLNCLI',
    'Server=SqlSrv1;Trusted_Connection=yes',
    'SELECT EmployeeID, FirstName, LastName, JobTitle
    FROM AdventureWorks.HumanResources.vEmployee
    ORDER BY LastName, FirstName'
    ) AS Employees

    如之前所提到的,您可以从SQL Server以外的数据源获取数据。例如,如下的SELECT语句查询了Microsoft Access数据库中的Employees表:

    SELECT Employees.*
    FROM OPENROWSET(
    'Microsoft.Jet.OLEDB.4.0',
    'C:\Data\Employees.mdb';'admin';' ',
    'SELECT EmployeeID, FirstName, LastName, JobTitle
    FROM Employees
    ORDER BY LastName, FirstName'
    ) AS Employees

    现在让我们来看一下OPENROWSET函数的其他重要功能--批量载入(Bulk Load)。为了说明其工作原理,我使用了如下的代码来创建和将Employees表导入Adventureworks数据库:

    USE AdventureWorks
    GO
    UPDATE Employees
    SET ResumeFile = (
    SELECT *
    FROM OPENROWSET(BULK 'C:\Data\Employee1.docx', SINGLE_BLOB)
    AS ResumeContent)
    WHERE EmployeeID = 1

    关于该函数的更多详情,请参考SQL Server联机丛书的"OPENROWSET (Transact-SQL)"主体。

  • 相关阅读:
    hdu 3579 Hello Kiki (中国剩余定理)
    hdu 1573 X问题 (非互质的中国剩余定理)
    poj 2891 Strange Way to Express Integers (非互质的中国剩余定理)
    查看cache中消耗性能的语句
    sqlserver2008 R2中查找未使用过的索引
    【转】如何新建索引:高开销的缺失索引
    查看sqlserver 2008中性能低下的语句
    经典
    符合条件的记录有则修改没有则添加的小优化技巧
    测试分区表,以及在现有表上新建分区方案,以及把分区表变为普通表测试代码!!
  • 原文地址:https://www.cnblogs.com/galaxyyao/p/1452320.html
Copyright © 2011-2022 走看看