OPENROWSET和OPENDATASOURCE的用法

OPENROWSET和OPENDATASOURCE主要用来将excel等数据导入sql数据库中,在sql中也可以直接操作和访问excel里面的数据.

--导入excel数据并生成新表:

SELECT   *   INTO  biao  FROM   OPENROWSET ( ' Microsoft.Jet.OLEDB.4.0 ' ,
' Excel 8.0;HDR=YES;Database=e:/book.xls ' [ Sheet1$ ] )

SELECT   *   INTO  biao  FROM   OPENDATASOURCE ( ' Microsoft.Jet.OLEDB.4.0 ' ,
' Excel 8.0;HDR=YES;Database=e:/book.xls ' )... [ Sheet1$ ]

-- Database表示文件的路径,Sheet1$表示excel的表名.
--
HDR表示是否把第一排设置成表头.

--导入excel数据并导到已生成的表:

insert   into  biao  select   *   from   OPENROWSET
(
' MICROSOFT.JET.OLEDB.4.0 ' , ' Excel 8.0;HDR=YES;IMEX=2;DATABASE=e:/book.xls ' , [ Sheet1$ ] )

insert   into  biao  select   *   from   OPENDATASOURCE
(
' MICROSOFT.JET.OLEDB.4.0 ' , ' Excel 8.0;HDR=YES;IMEX=2;DATABASE=e:/book.xls ' )... [ Sheet1$ ]

--远程导入的例子:

insert   OPENDATASOURCE ( ' SQLOLEDB ' ,
' Data Source=IP;User ID=sa;Password= ' ).数据库名.dbo.表名 (字段1,字段2)
SELECT  字段1,字段2
FROM   OpenDataSource ' Microsoft.Jet.OLEDB.4.0 ' ,
  
' Data Source=e:/book.xls;User ID=Admin;Password=;Extended properties=Excel 8.0 ' )... [ Sheet1$ ]

--查询excel里面的数据:

select *   from   OpenDataSource ( ' Microsoft.Jet.OLEDB.4.0 ' ,   
      
' Data Source=e:/book.xls;Extended properties=Excel 8.0 ' )...[sheet1$]

 

另外,还可以查询不同的数据库,但前提是要有数据源,例如:

select * from OPENROWSET('MSDASQL','DSN=orclvenus;UID=venusCar;PWD=sandi;database=orclvenus;','select * from V_IT_INTERFACE_CCF')

你可能感兴趣的:(dataSource)