OPENROWSET 函数

建立临时的数据服务器,并返回一个表。

可在 SELECT、INSERT、DELETE、UPDATE 等语句中充当表名。

OPENROWSET
( 'provider_name',
  {
     'datasource' ; 'user_id' ; 'password'
     | 'provider_string'
  }  ,
  {
    [ catalog.][ schema.]object
    | 'query'
  }
)
参数 说明
provider_name 'MSDASQL' 使用 ODBC 驱动

'SQLOLEDB' 使用 OLEDB 驱动

datasource 数据源,相当于 "Data Source=..."
user_id 用户名,相当于 "USER=..."
password 密码,相当于 "PASSWORD=..."
provider_string 完整的连接字符串

示例:

查询 EXCEL 数据

select a.*
FROM OPENROWSET(
   'MSDASQL',
   'driver={microsoft excel driver (*.xls)};dbq=C:\BOOK1.xls',
   'select * from [SHEET1$]'
) as a

查询 MSSQL 数据库

SELECT a.* FROM
OPENROWSET(
   'SQLOLEDB',
   'localhost';'sa';'sapassword',
   'SELECT * FROM pubs.dbo.authors ORDER BY au_lname, au_fname'
) AS a

查询带密码的 ACCESS 数据库

FROM OPENROWSET(
   'MSDASQL',
   'driver={microsoft access driver (*.mdb)};dbq=C:\GCM.mdb;uid=admin;pwd=123',
   'select * from archive'
) as a
 
在两个外部数据源之间传递数据

insert into
OPENROWSET(
   'MSDASQL',
   'dsn=aaaa',
   'select * from [TA]'
)
select b.*
FROM OPENROWSET(
   'MSDASQL',
   'dsn=bbbb',
   'select * from [TB]'
) as b