日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

SQL的OPENROWSET开启和使用方法

發(fā)布時(shí)間:2025/3/15 数据库 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL的OPENROWSET开启和使用方法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

1、開(kāi)始?—>?

所有程序??—>?

Microsoft?SQL?Server?2005??—>?

配置工具??—>?

SQL?Server外圍應(yīng)用配置器??—>?

功能的外圍應(yīng)用配置器??—>?

實(shí)例名??—>?

Database?Engine??—>?

即席遠(yuǎn)程查詢??—>?

啟用OpenRowset和OpenDatasource支持。?

?

?

?

2.代碼啟用

???啟用:

exec?sp_configure?'show?advanced?options',1

reconfigure

exec?sp_configure?'Ad?Hoc?Distributed?Queries',1

reconfigure

????關(guān)閉:

exec?sp_configure?'Ad?Hoc?Distributed?Queries',0

reconfigure

exec?sp_configure?'show?advanced?options',0

reconfigure?

?

在不啟用OpenRowset/OpenDatasource時(shí)使用如下語(yǔ)句:

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??這個(gè)語(yǔ)句是從access導(dǎo)入數(shù)據(jù)到SQL2005數(shù)據(jù)表

你將看到“

??????SQL?Server?阻止了對(duì)組件?'Ad?Hoc?Distributed?Queries'?的?STATEMENT'OpenRowset/OpenDatasource'?的訪問(wèn),因?yàn)榇私M件已作為此服務(wù)器安全配置的一部分而被關(guān)閉。系統(tǒng)管理員可以通過(guò)使用?sp_configure?啟用?'Ad?Hoc?Distributed?Queries'。有關(guān)啟用?'Ad?Hoc?Distributed?Queries'?的詳細(xì)信息,請(qǐng)參閱?SQL?Server?聯(lián)機(jī)叢書(shū)中的?"外圍應(yīng)用配置器"??”錯(cuò)誤提升信息。?

?

?

?

?

OPENROWSET

?

包含訪問(wèn)?OLE?DB?數(shù)據(jù)源中的遠(yuǎn)程數(shù)據(jù)所需的全部連接信息。當(dāng)訪問(wèn)鏈接服務(wù)器中的表時(shí),這種方法是一種替代方法,并且是一種使用?OLE?DB?連接并訪問(wèn)遠(yuǎn)程數(shù)據(jù)的一次性的、特殊的方法??梢栽诓樵兊?FROM?子句中像引用表名那樣引用?OPENROWSET?函數(shù)。依據(jù)?OLE?DB?提供程序的能力,還可以將?OPENROWSET?函數(shù)引用為?INSERT、UPDATE?或?DELETE?語(yǔ)句的目標(biāo)表。盡管查詢可能返回多個(gè)結(jié)果集,然而?OPENROWSET?只返回第一個(gè)。

?

?

語(yǔ)法

OPENROWSET?(?'provider_name'

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

????????|?'provider_string'?}

????,?{?[?catalog.]?[?schema.]?object

????????|?'query'?}?

????)?

?

?

參數(shù)

'provider_name'

?

字符串,它代表在注冊(cè)表中指定的?OLE?DB?提供程序的友好名。provider_name?沒(méi)有默認(rèn)值。

?

'datasource'

?

字符串常量,它對(duì)應(yīng)著某個(gè)特定的?OLE?DB?數(shù)據(jù)源。datasource?是將被傳遞到提供程序?IDBProperties?接口以初始化提供程序的?DBPROP_INIT_DATASOURCE?屬性。通常,這個(gè)字符串包含數(shù)據(jù)庫(kù)文件的名稱、數(shù)據(jù)庫(kù)服務(wù)器的名稱,或者提供程序能理解的用于查找數(shù)據(jù)庫(kù)的名稱。?

?

'user_id'

?

字符串常量,它是傳遞到指定?OLE?DB?提供程序的用戶名。user_id?為連接指定安全上下文,并將它作為?DBPROP_AUTH_USERID?屬性傳遞進(jìn)來(lái)以初始化提供程序。

?

'password'

?

字符串常量,它是將被傳遞到?OLE?DB?提供程序的用戶密碼。當(dāng)初始化提供程序時(shí),將?password?作為?DBPROP_AUTH_PASSWORD?屬性傳遞進(jìn)來(lái)。

?

'provider_string'

?

提供程序特定的連接字符串,將它作為?DBPROP_INIT_PROVIDERSTRING?屬性傳遞進(jìn)來(lái)以初始化?OLE?DB?提供程序。通常?provider_string?封裝初始化提供程序所需的所有連接信息。

?

catalog

?

目錄或數(shù)據(jù)庫(kù)的名稱,其中駐留著指定的對(duì)象。

?

schema

?

架構(gòu)的名稱或指定對(duì)象的對(duì)象所有者名稱。

?

object

?

對(duì)象名稱,它唯一地標(biāo)識(shí)出將要操作的對(duì)象。

?

'query'

?

是字符串常量,發(fā)送到提供程序并由提供程序執(zhí)行。Microsoft®?SQL?Server??不處理該查詢,但處理由提供程序返回的查詢結(jié)果(直接傳遞查詢)。對(duì)于有些提供程序,它們并沒(méi)有通過(guò)表名而是通過(guò)命令語(yǔ)言表現(xiàn)自己的表格格式數(shù)據(jù),那么將直接傳遞查詢用于這些提供程序是非常有用的。只要查詢提供程序支持?OLE?DB?Command?對(duì)象及其強(qiáng)制接口,那么在遠(yuǎn)程服務(wù)器上就支持直接傳遞查詢。有關(guān)更多信息,請(qǐng)參見(jiàn)?SQL?Server?OLE?DB?程序員參考。?

?

?

注釋

如果?OLE?DB?提供程序在指定的數(shù)據(jù)源中支持多個(gè)目錄和架構(gòu),那么就需要目錄及架構(gòu)名稱。如果?OLE?DB?提供程序并不支持目錄和架構(gòu),那么可以省略?catalog?及?schema?的值。?

?

如果提供程序只支持架構(gòu)名,那么必須指定一個(gè)兩部分名稱,形式為?schema.object。如果提供程序只支持目錄名,那么必須指定一個(gè)三部分名稱,形式為?catalog.schema.object。

?

OPENROWSET?不接受參數(shù)變量。

?

?

權(quán)限

OPENROWSET?權(quán)限由傳遞到?OLE?DB?提供程序的用戶名的權(quán)限確定。?

?

?

示例

?

A.?將?OPENROWSET?與?SELECT?語(yǔ)句及用于?SQL?Server?的?Microsoft?OLE?DB?提供程序一起使用

下面的示例使用用于?SQL?Server?的?Microsoft?OLE?DB?提供程序訪問(wèn)?pubs?數(shù)據(jù)庫(kù)中的?authors?表,該數(shù)據(jù)庫(kù)在一個(gè)名為?seattle1?的遠(yuǎn)程服務(wù)器上。從?datasource、user_id?及?password?中初始化提供程序,并且使用?SELECT?語(yǔ)句定義返回的行集。

?

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?與對(duì)象及用于?ODBC?的?OLE?DB?提供程序一起使用

下面的示例使用用于?ODBC?的?OLE?DB?提供程序以及?SQL?Server?ODBC?驅(qū)動(dòng)程序訪問(wèn)?pubs?數(shù)據(jù)庫(kù)中的?authors?表,該數(shù)據(jù)庫(kù)在一個(gè)名為?seattle1?的遠(yuǎn)程服務(wù)器中。提供程序用在?ODBC?提供程序所用的?ODBC?語(yǔ)法中指定的?provider_string?進(jìn)行初始化,定義返回的行集時(shí)使用?catalog.schema.object?語(yǔ)法。

?

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?提供程序

下面的示例通過(guò)用于?Jet?的?Microsoft?OLE?DB?提供程序訪問(wèn)?Microsoft?Access?Northwind?數(shù)據(jù)庫(kù)中的?orders?表。

?

?

?

說(shuō)明??下面的示例假定已經(jīng)安裝了?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?中的另一個(gè)表

下面的示例從本地?SQL?Server?Northwind?數(shù)據(jù)庫(kù)的?customers?表中,以及存儲(chǔ)在相同計(jì)算機(jī)上?Access?Northwind?數(shù)據(jù)庫(kù)的?orders?表中選擇所有數(shù)據(jù)

?

?

?

說(shuō)明??下面的示例假定已經(jīng)安裝了?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

轉(zhuǎn)載于:https://www.cnblogs.com/liuqiyun/p/7645443.html

總結(jié)

以上是生活随笔為你收集整理的SQL的OPENROWSET开启和使用方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。