sql文件远程导入oracle,SQL 数据的导入导出,对远程(MSsql,OracleAccess,)数据库的操作以及读取Excel,txt文件中的数据...

本篇文章主要总结MS-SQL数据的导入导出,包括MS-SQL  对远程 MS-SQL,Oracle,Access数据的读取,更新,插入和删除, 以及对以Excel,txt文件存储数据的导入与导出,和bcp的简单使用。

以及几个函数OPENROWSET(),OPENQUERY(),OPENDATASOURCE()的使用

--类别:总结

--charry0110(晓风残月)

--*远程库

select * from openrowset(''SQLOLEDB'',''远程服务器名'';''用户名'';''密码'';''库名.dbo.表名'')

insert into openrowset(''SQLOLEDB'',''BERRY'';''sa'';''sa'',tt.dbo.ALaw_BestbigPunish)(OneName) select ''c''--添加

select * from openrowset(''SQLOLEDB'',''BERRY'';''sa'';''sa'',tt.dbo.ALaw_FilePunish)--选择

delete from openrowset(''SQLOLEDB'',''BERRY'';''sa'';''sa'',tt.dbo.ALaw_BestbigPunish)--删除

update openrowset(''SQLOLEDB'',''BERRY'';''sa'';''sa'',tt.dbo.ALaw_BestbigPunish)--更新

set OneName=''b''

--注意''192.168.18.252'';''sa'';''abc''中间是";",而不是","。

select a.* from OPENQUERY(''SQLOLEDB'',''BERRY'';''sa'';''sa'',库名.dbo.表名) a

SELECT a.* FROM OPENQUERY (''oradb'',''192.168.0.111'';''sa'';''sa'',库名.dbo.表名) a

SELECT * FROM OPENDATASOURCE(''SQLOLEDB'',''Data Source=192.168.0.111;User ID=sa;Password=sa'').tt.dbo.ALaw_BestbigPunish

INSERT INTO OPENDATASOURCE(''SQLOLEDB'',''Data Source=192.168.0.111;User ID=sa;Password=sa'').tt.dbo.ALaw_FilePunish(CaseName) select Num from aa.dbo.ydy

select * from  OPENROWSET(''SQLOLEDB'',''192.168.0.111'';''sa'';''sa'', ''select * from tt.dbo.ALaw_FilePunish'')

insert into OPENROWSET(''SQLOLEDB'',''192.168.0.111'';''sa'';''sa'', ''select CaseName from tt.dbo.ALaw_FilePunish'') SELECT Num FROM aa.dbo.ydy

--第二个参数webconfig连接字符串可以使用delphi、visual studio等开发工具中的ADO控件自动生成相应的连接字符串

--*Excel

select a.* from OpenRowSet(''Microsoft.Jet.OLEDB.4.0'',''EXCEL 8.0;DataBase=D:\test.xls'',sheet1$) a

select a.* into ydy from OpenRowSet(''Microsoft.Jet.OLEDB.4.0'',''EXCEL 8.0;DataBase=D:\test.xls'',sheet1$) a

SELECT a.* FROM OpenDataSource(''Microsoft.Jet.OLEDB.4.0'',''Data Source= "D:\test.xls";Extended properties=Excel 8.0'')...sheet1$ a

select * from ydy

--注意sheet1$是否正确

--*Access

SELECT * FROM  OPENROWSET(''Microsoft.Jet.OLEDB.4.0'',''D:\db.mdb'';''admin'';'''',''SELECT * FROM vote'')

select * from OPENDATASOURCE(''Microsoft.Jet.OLEDB.4.0'',

''Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\db.mdb;Persist Security Info=False'')...vote

--*txt

select * from OPENROWSET(''MICROSOFT.JET.OLEDB.4.0'',''Text;DATABASE=D:\'',[sopendata#txt])

select * from OPENDATASOURCE(''MICROSOFT.JET.OLEDB.4.0'',''Text;DATABASE=D:\'')...[sopendata#txt]

delete from OPENROWSET(''MICROSOFT.JET.OLEDB.4.0'',''Text;DATABASE=D:\'', [sopendata#txt])

/*ID,Name,Num

1,Jim,3

2,Kate,4

3,Tom,5*/

--在这里文件名中的.要使用#代替,在向文本导出时,不仅文本文件要存在,而且第一行必须和要导出表的字段一至

--非SQL Server数据库在OPENDATASOURCE(...)后面引用数据库中的表时使用"...”,

insert into OPENROWSET(''MICROSOFT.JET.OLEDB.4.0'',''Text;DATABASE=D:\'',[sopendata#txt])

select * from t1

--*sql不支持导入word

--解决一:文本文件,可惜这样是要求这些数据排版得有规律。

--解决二:一般是先拷贝进excel,然后再导入sqlserver的

----bcp

--假设要从硬盘文件c:\DT.''txt''中导入文件,则如下代码实现:

EXEC master..xp_cmdshell ''bcp "aa.dbo.ydy" in D:\dbo.txt -c -charry -sa -sa''

--假设导出文件到c:\DT.''txt'',则如下代码实现:

EXEC master..xp_cmdshell ''bcp "aa.dbo.ydy" out c:\DT.txt -c -Sservername -Usa -Ppassword''

EXEC master..xp_cmdshell ''bcp "Select * from dbname..tablename"

queryout c:\DT.txt -c -Sservername -Usa -Ppassword''

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值