权限:
OPENROWSET 权限由传送到 OLE DB Provider 的使用者名称的权限来决定。
范例:
A. 使用有 Select 的OPENROWSET 与 Microsoft OLE DB Provider for SQL Server
以下范例使用 Microsoft OLE DB Provider for SQL Server,以存取命名为 seattle1 的远端伺服器上 pubs 资料库的 authors 资料表。从 datasource、user_id 与 password 初始化提供者,且使用 Select 来定义传回的资料列集。
格式:
Select a.*
FROM OPENROWSET("SQLOLEDB’,"ServerName";"LoginUser";"Password",
"Select * FROM [DatabaseName].dbo.TableName orDER BY ColName1, ColName12") AS a |
说明:查询所提供的驱动程序(SQLOLEDB是查询SQL Server),查询SQL服务器ServerName下的Databasename中的数据TableName表中的数据(SQL语句),其实用户权限是LoginUser。
例子:
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 与 OLE DB Provider for ODBC。
以下范例使用 OLE DB Provider for ODBC 与 SQL Server ODBC 驱动程式,来存取命名为 seattle1 的远端伺服器上 pubs 资料库的 authors 资料表。以 ODBC 提供者使用的 ODBC 语法指定之 provider_string 来初始化提供者,并使用 catalog.schema.object 语法来定义传回的资料列集。
格式:这连接方式是ODBC数据的驱动程序:
Select a.*
FROM OPENROWSET("MSDASQL",
"DRIVER={SQL Server};SERVER=ServerName;UID=LoginUser;PWD=Password,
[DatabaseName].dbo.TableName) AS a
orDER BY ColName1, ColName12
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. 使用 Microsoft OLE DB Provider for Jet。
以下范例藉由Microsoft OLE DB Provider for Jet 存取 Microsoft Access Northwind 资料库中的 orders 资料表。
a、以下范例假设已经安装 Access。
1、USE pubs
GO
Select a.*
FROM OPENROWSET("Microsoft.Jet.OLEDB.4.0",
"c:MSOfficeAccessSamplesorthwind.mdb";"admin";"mypwd", orders)
AS a
GO
2、
select * from openrowset("Microsoft.Jet.OLEDB.4.0",
"E:StudyAccess est.mdb";"admin";"","select * from student")
或
Select a.*
FROM OPENROWSET("MICROSOFT.JET.OLEDB.4.0",
"E:StudyAccess est.mdb";"admin";"", student)
AS a |