Who do you think is the best coder and why?

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

             完成这些操作主要使用以下几个函数OPENROWSETOPENQUERY,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、付费专栏及课程。

余额充值