分布式查询 opendatasource()

来源:互联网 发布:淘宝爆款的基本特征 编辑:程序博客网 时间:2024/05/21 04:22
insert into t_gene_sy_pres (pres_name,address,byrs,edus_id,gdrxnl,kinderclass_id,kindertype_id)
SELECT pres_name,address,cast(byrs as numeric),cast(edus_id as numeric),cast(gdrxnl as numeric),
cast(kinderclass_id as numeric),cast(kindertype_id as numeric) FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0',
'Data Source="F:/TEST/TEST.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[T_GENE_SY_PRES]
 

update opendatasource('Microsoft.Jet.OLEDB.4.0','Data Source="F:/各幼儿园师生资料/已处理/zhiye.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$] set 职位='其他' where 职位 not in ('园长','教师','保健员','保育员','营养员',保教主任','财务','报帐员','书记','园长助理')
 
insert into opendatasource('Microsoft.Jet.OLEDB.4.0','Data Source="F:/资源.xls";User ID=Admin;Password=;Extended Properties=Excel 5.0')...[Sheet1$]
select p.pres_name,c.cla_name,f.res_title,f.res_path,f.pub_time from opendatasource('SQLOLEDB','Data Source=;User ID=sa;Password=').[pd-baby].dbo.t_gene_re_file f
join opendatasource('SQLOLEDB','Data Source=;User ID=sa;Password=').[pd-baby].dbo.t_gene_re_class c on
f.cla_id = c.cla_id join opendatasource('SQLOLEDB','Data Source=;User ID=sa;Password=').[pd-baby].dbo.t_gene_sy_pres p
on f.pres_id = p.pres_id order by p.pres_name

 

 

异类查询(OpenDataSource)

一,实例:
从paradox中导入数据到sql server:
?
SELECT *
?? FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
? 'Data Source="E:/caozhBack/hesgxzh/data/";Extended properties=paradox 5.x')...resttem2
?
?
二,属性Extended properties:
DBase 5.0
DBASE IV
FoxPro 3.0
Paradox 7.X
Excel 8.0
text;HDR=YES;FMT=Delimited
?
?
三、同类应用
1.在SQL SERVER里查询access数据:

SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:/DB.mdb";User ID=Admin;Password=')...表名

?

2.将access导入SQL server
在SQL SERVER 里运行:
SELECT *
INTO newtable
FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0',
????? 'Data Source="c:/DB.mdb";User ID=Admin;Password=' )...表名

?

3.将SQL SERVER表里的数据插入到Access表中
在SQL SERVER 里运行:
insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
? 'Data Source=" c:/DB.mdb";User ID=Admin;Password=')...表名
(列名1,列名2)
select 列名1,列名2? from? sql表

实例:
insert into? OPENROWSET('Microsoft.Jet.OLEDB.4.0',
?? 'C:/db.mdb';'admin';'', Test)
select id,name from Test


INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:/trade.mdb'; 'admin'; '', 表名)
SELECT *
FROM sqltablename

?

4、在SQL SERVER里查询Excel数据:

SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:/book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]

下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。
SELECT *
FROM OpenDataSource ( 'Microsoft.Jet.OLEDB.4.0',
? 'Data Source="c:/Finance/account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions

?

5、将Excel的数据导入SQL server :
SELECT * into newtable
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
? 'Data Source="c:/book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]

实例:
SELECT * into newtable
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
? 'Data Source="c:/Finance/account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions

?

6、将SQL SERVER中查询到的数据导成一个Excel文件
T-SQL代码:
EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:/Temp.xls -c -q -S"servername" -U"sa" -P""'
参数:S 是SQL服务器名;U是用户;P是密码
说明:还可以导出文本文件等多种格式

实例:EXEC master..xp_cmdshell 'bcp saletesttmp.dbo.CusAccount out c:/temp1.xls -c -q -S"pmserver" -U"sa" -P"sa"'

?EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout C:/ authors.xls -c -Sservername -Usa -Ppassword'

在VB6中应用ADO导出EXCEL文件代码:
Dim cn? As New ADODB.Connection
cn.open "Driver={SQL Server};Server=WEBSVR;DataBase=WebMis;UID=sa;WD=123;"
cn.execute "master..xp_cmdshell 'bcp "SELECT col1, col2 FROM 库名.dbo.表名" queryout E:/DT.xls -c -Sservername -Usa -Ppassword'"


7、在SQL SERVER里往Excel插入数据:

insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:/Temp.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...table1 (A1,A2,A3) values (1,2,3)

T-SQL代码:
INSERT INTO?
?OPENDATASOURCE('Microsoft.JET.OLEDB.4.0',?
?'Extended Properties=Excel 8.0;Data source=C:/training/inventur.xls')...[Filiale1$]?
?(bestand, produkt) VALUES (20, 'Test')?

?

8、将SQLServer导入到文本文件

连接串
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/temp;Extended Properties="text;HDR=YES;";Persist Security Info=False
SQL语句
SELECT * into aaa.txt? FROM Tab1 IN [ODBC]
[ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=Demo;]
要改变分隔符,可以修改
Schema.ini文件。该文件中指明分割符,如:
??? [yourfile.txt]
??? ...
??? Format=Delimited(|)
更详细的例子可以参考:微软的Knowledge Base的文章:“Q149090 CC: How to Use Schema.ini for Accessing Text Data”和微软的Knowledge Base的文章:“Q187670 OWTO: Use RDO and ODBC Text Driver to Open a Delimited Text”。

?

 

原创粉丝点击