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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQL的OPENROWSET开启和使用方法

發布時間:2025/3/15 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL的OPENROWSET开启和使用方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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开启和使用方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。