欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

sqlserver2005 使用OpenRowSet,opendatasource访问远程数据

程序员文章站 2022-05-24 15:57:32
...

OpenRowSet 1、向Excel查询 方法(1) select * from OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;database=D:\testdata\test01.xls;','select * from [Sheet1$] wheresnamelike ''%l%''') 方法(2) select * from OpenRowSet('microsoft.jet

OpenRowSet

1、向Excel查询

方法(1)

select * from
OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;database=D:\testdata\test01.xls;','select * from [Sheet1$] where sname like ''%l%''')

方法(2)

select * from
OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;database=D:\testdata\test01.xls;','select * from [Sheet1$] ')

where sname like '%l%'
1)hdr=yes时可以把xls的第1行作为字段看待,如第1个中hdr=no的话,where时就会报错
2)[]和美圆$必须要,否则M$可不认这个账

2、修改Execl

update
OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;database=D:\testdata\test01.xls;','select * from [Sheet1$]')
set ssex='f' where sname like '%l%'

3、导入导出

insert into
OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;database=D:\testdata\test01.xls;','select * from [Sheet1$]')
select s#,sname,ssex from student

/*=================== 导入/导出 excel 的基本方法 ===================*/

从excel文件中,导入数据到sql数据库中,很简单,直接用下面的语句:

/*===================================================================*/
--如果接受数据导入的表已经存在
insert into student(s#,sname,ssex)
select * from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;IMEX=2;DATABASE=D:\testdata\test01.xls',[sheet1$])

--如果导入数据并生成表
select* into aa from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;IMEX=2;DATABASE=D:\testdata\test01.xls',[sheet1$])


/*===================================================================*/
--如果从sql数据库中,导出数据到excel,如果excel文件已经存在,而且已经按照要接收的数据创建好表头

,就可以简单的用:
insert into
OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;database=D:\testdata\test01.xls;','select * from [Sheet1$]')
select * from 表名
opendatasource

(1)查看远程数据

SELECT *
FROM opendatasource( 'SQLOLEDB ', 'Data Source=hpsu;User ID=sa;Password=' ).test.dbo.testtable

(2)向远程表中添加数据

insert opendatasource( 'SQLOLEDB ', 'Data Source=hpsu;User ID=sa;Password=' ).test.dbo.testtable
select * from a

远程数据的其他访问方法参见SQLserver2005 使用openquery访问远程数据

1.1.开启Ad Hoc Distributed Queries组件,在sql查询编辑器中执行如下语句:
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure

1.2.关闭Ad Hoc Distributed Queries组件,在sql查询编辑器中执行如下语句:
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure