http://www.cnblogs.com/skylaugh/p/6119345.html

1、开始 —>

所有程序  —>

Microsoft SQL Server 2005  —>

配置工具  —>

SQL Server外围应用配置器  —>

功能的外围应用配置器  —>

实例名  —>

Database Engine  —>

即席远程查询  —>

启用OpenRowset和OpenDatasource支持。

2.代码启用

启用:

exec sp_configure 'show advanced options',1

reconfigure

exec sp_configure 'Ad Hoc Distributed Queries',1

reconfigure

关闭:

exec sp_configure 'Ad Hoc Distributed Queries',0

reconfigure

exec sp_configure 'show advanced options',0

reconfigure

在不启用OpenRowset/OpenDatasource时使用如下语句:

INSERT INTO User_0502_tbl (BGQX )  SELECT ArID FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0','Data source=''D:\delphi\Test\Database.mdb'';User ID=Admin;Password=')...AFiles_tbl  这个语句是从access导入数据到SQL2005数据表

你将看到“

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

OPENROWSET

包含访问 OLE DB 数据源中的远程数据所需的全部连接信息。当访问链接服务器中的表时,这种方法是一种替代方法,并且是一种使用 OLE DB 连接并访问远程数据的一次性的、特殊的方法。可以在查询的 FROM 子句中像引用表名那样引用 OPENROWSET 函数。依据 OLE DB 提供程序的能力,还可以将 OPENROWSET 函数引用为 INSERT、UPDATE 或 DELETE 语句的目标表。尽管查询可能返回多个结果集,然而 OPENROWSET 只返回第一个。

语法

OPENROWSET ( 'provider_name'

, { 'datasource' ; 'user_id' ; 'password'

| 'provider_string' }

, { [ catalog.] [ schema.] object

| 'query' }

)

参数

'provider_name'

字符串,它代表在注册表中指定的 OLE DB 提供程序的友好名。provider_name 没有默认值。

'datasource'

字符串常量,它对应着某个特定的 OLE DB 数据源。datasource 是将被传递到提供程序 IDBProperties 接口以初始化提供程序的 DBPROP_INIT_DATASOURCE 属性。通常,这个字符串包含数据库文件的名称、数据库服务器的名称,或者提供程序能理解的用于查找数据库的名称。

'user_id'

字符串常量,它是传递到指定 OLE DB 提供程序的用户名。user_id 为连接指定安全上下文,并将它作为 DBPROP_AUTH_USERID 属性传递进来以初始化提供程序。

'password'

字符串常量,它是将被传递到 OLE DB 提供程序的用户密码。当初始化提供程序时,将 password 作为 DBPROP_AUTH_PASSWORD 属性传递进来。

'provider_string'

提供程序特定的连接字符串,将它作为 DBPROP_INIT_PROVIDERSTRING 属性传递进来以初始化 OLE DB 提供程序。通常 provider_string 封装初始化提供程序所需的所有连接信息。

catalog

目录或数据库的名称,其中驻留着指定的对象。

schema

架构的名称或指定对象的对象所有者名称。

object

对象名称,它唯一地标识出将要操作的对象。

'query'

是字符串常量,发送到提供程序并由提供程序执行。Microsoft® SQL Server™ 不处理该查询,但处理由提供程序返回的查询结果(直接传递查询)。对于有些提供程序,它们并没有通过表名而是通过命令语言表现自己的表格格式数据,那么将直接传递查询用于这些提供程序是非常有用的。只要查询提供程序支持 OLE DB Command 对象及其强制接口,那么在远程服务器上就支持直接传递查询。有关更多信息,请参见 SQL Server OLE DB 程序员参考。

注释

如果 OLE DB 提供程序在指定的数据源中支持多个目录和架构,那么就需要目录及架构名称。如果 OLE DB 提供程序并不支持目录和架构,那么可以省略 catalog 及 schema 的值。

如果提供程序只支持架构名,那么必须指定一个两部分名称,形式为 schema.object。如果提供程序只支持目录名,那么必须指定一个三部分名称,形式为 catalog.schema.object。

OPENROWSET 不接受参数变量。

权限

OPENROWSET 权限由传递到 OLE DB 提供程序的用户名的权限确定。

示例

A. 将 OPENROWSET 与 SELECT 语句及用于 SQL Server 的 Microsoft OLE DB 提供程序一起使用

下面的示例使用用于 SQL Server 的 Microsoft OLE DB 提供程序访问 pubs 数据库中的 authors 表,该数据库在一个名为 seattle1 的远程服务器上。从 datasource、user_id 及 password 中初始化提供程序,并且使用 SELECT 语句定义返回的行集。

USE pubs

GO

SELECT a.*

FROM OPENROWSET('SQLOLEDB','seattle1';'sa';'MyPass',

'SELECT * FROM pubs.dbo.authors ORDER BY au_lname, au_fname') AS a

GO

B. 将 OPENROWSET 与对象及用于 ODBC 的 OLE DB 提供程序一起使用

下面的示例使用用于 ODBC 的 OLE DB 提供程序以及 SQL Server ODBC 驱动程序访问 pubs 数据库中的 authors 表,该数据库在一个名为 seattle1 的远程服务器中。提供程序用在 ODBC 提供程序所用的 ODBC 语法中指定的 provider_string 进行初始化,定义返回的行集时使用 catalog.schema.object 语法。

USE pubs

GO

SELECT a.*

FROM OPENROWSET('MSDASQL',

'DRIVER={SQL Server};SERVER=seattle1;UID=sa;PWD=MyPass',

pubs.dbo.authors) AS a

ORDER BY a.au_lname, a.au_fname

GO

C. 使用用于 Jet 的 Microsoft OLE DB 提供程序

下面的示例通过用于 Jet 的 Microsoft OLE DB 提供程序访问 Microsoft Access Northwind 数据库中的 orders 表。

说明  下面的示例假定已经安装了 Access。

USE pubs

GO

SELECT a.*

FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',

'c:\MSOffice\Access\Samples\northwind.mdb';'admin';'mypwd', Orders)

AS a

GO

D. 使用 OPENROWSET 和 INNER JOIN 中的另一个表

下面的示例从本地 SQL Server Northwind 数据库的 customers 表中,以及存储在相同计算机上 Access Northwind 数据库的 orders 表中选择所有数据

说明  下面的示例假定已经安装了 Access。

USE pubs

GO

SELECT c.*, o.*

FROM Northwind.dbo.Customers AS c INNER JOIN

OPENROWSET('Microsoft.Jet.OLEDB.4.0',

'c:\MSOffice\Access\Samples\northwind.mdb';'admin';'mypwd', Orders)

AS o

ON c.CustomerID = o.CustomerID

GO

转载于:https://www.cnblogs.com/liuqiyun/p/7645443.html

SQL的OPENROWSET开启和使用方法相关推荐

  1. mysql openrowset_SQL的OPENROWSET开启和使用方法

    1.开始 -> 所有程序  -> Microsoft SQL Server 2005  -> 配置工具  -> SQL Server外围应用配置器  -> 功能的外围应用 ...

  2. SQL Server2014数据库开启远程连接(转载+实操)

    SQL Server2014数据库开启远程连接(转载) 源帖地址:点击我 用到的工具:sql server 2014+ windows Server 2008R 第一步就是把sql server 安装 ...

  3. mysql如何开启慢查询_MySQL如何开启慢查询 MySQL开启慢查询方法

    MySQL如何开启慢查询?本篇文章小编给大家分享一下MySQL开启慢查询方法,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 一.简介 开启慢查询日志, ...

  4. dm归档文件配置、sql 日志的开启和关闭以 及基本的操作、创建定时备份和删除备份的作业、数据库物理、逻辑备份还原

    1.达梦数据库中归档文件配置. 生产环境必须开启归档日志,且必须限制归档日志保留量,限制方法: 设置归档空间大小限制即指定 SPACE_LIMIT 参数(单位是 MB). 定期删除归档日志(设置定时作 ...

  5. sql server 2008数据导入Oracle方法

    试了几种sql server数据导入Oracle的方法,发现还是sql server 的导入导出工具最好使.使用方法很简单,照着向导做就可以.不过使用中需要注意以下几点: 系统盘需要足够大.因为SSI ...

  6. oracle求某个数的阶乘,Oracle SQL实现阶乘的几个方法

    Oracle SQL实现阶乘的几个方法 regonly1 2010-06-07 16:24:39 Linux操作系统 第一个:字符串叠加运算法 原理是先将要相乘的数用字符串拼接起来,然后将拼接的逗号替 ...

  7. SQL Server数据库收缩日志的方法

    SQL Server数据库收缩日志的方法: 方法一 一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大. 1.设置数据库模式为 ...

  8. oracle sql语句中包含‘’ 的解决方法

    oracle sql语句中包含'&' 的解决方法 参考文章: (1)oracle sql语句中包含'&' 的解决方法 (2)https://www.cnblogs.com/hm1990 ...

  9. linux学习之路——ubuntu 16.04 开机开启数字小键盘解决方法

    linux学习之路--ubuntu 16.04 开机开启数字小键盘解决方法 参考文章: (1)linux学习之路--ubuntu 16.04 开机开启数字小键盘解决方法 (2)https://www. ...

最新文章

  1. Netty整合SpringMVC,实现高效的HTTP服务请求
  2. 解决Ubuntu无法进行SSH连接的问题(以及如何使用SSH)
  3. P2680 运输计划(树上差分+lca+二分)
  4. null === undefined_【英】两个“非值”:undefined 和 null
  5. 在网上搜到的有用的资料
  6. 没有样式重置_我不能没有的5个Vue.js库
  7. pytorch 数据类型
  8. linux i查看o性能度量,在linux系统中I/O 调度的选择
  9. 2020-09-23 一个浙江商人立下的22条规矩
  10. 如何从阿里巴巴矢量图标库引入图标
  11. MySQL数据库 资源
  12. amd zen服务器芯片,【关注】ZEN架构32核64线程!AMD公布Naples服务器芯片预览
  13. 关于screenX、clientX、pageX, offsetX的相关介绍
  14. solr入门以及dih简介
  15. R数据分析当中的化整为零(Split-Apply-Combine)策略
  16. |spoj 694|后缀数组|Distinct Substrings
  17. php联图生成二维码浏览器扫可以到页面,但是QQ或微信扫直接显示链接
  18. eclipse链接Hadoop集群时报错Error:Call From xxx/xxx.xxx.xxx.xxx to hostname1:9000 failed on connection excep
  19. LeetCode刷题第七天
  20. 使用python来实现零售行业的数据分析 : EDA+TF-IDF+t-SNE+K-Means+LDA(干货)

热门文章

  1. 面向过程和面向对象编程的优缺点
  2. C# Socket编程(3)编码和解码
  3. 【程序员面试宝典】强制类型转换之面试例题2
  4. ccna____总结
  5. jQuery 陷阱。。。。
  6. .Net中删除数据前进行外键冲突检测
  7. respect labor
  8. tableau暂时不支持m1芯片!期待未来!
  9. rhel5.5安装vsftpd并配置虚拟用户及开放防火墙和selinux
  10. Chapter 1 First Sight——12