用T-SQL语句实现SQL server与XLS,MDB等文件的数据交换

 今天在SQL Server和Access之间倒数据,由于使用的是2005 EXPRESS版,不提供DTS工具,因此只能使用SQL语句来实现数据的迁移。以下为转载的“云中客的专栏 ”的“用T-SQL语句实现SQL server与XLS,MDB等文件的数据交换 ”。

第一部分 :SQL server ACCESS 数据库的交换
 
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

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

 
3. SQL SERVER 表里的数据插入到 Access 表中

Insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:/DB.mdb";User ID=Admin;Password=')...表名 (列名1,列名2)
Select 列名1,列名2 from sql表

 
第二部分 :SQL SERVER EXCEL 文件的交换
1 、在 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$]

 
2 、将 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$]

 
3 、将 SQL SERVER 中查询到的数据导成一个 Excel 文件

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"'
 
在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'"

配置选项 'xp_cmdshell'
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;

4 、在 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)

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值