今天在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)
|