跳到主要内容 SQL Server 与 Access/Excel 数据转换方法 | 极客日志
SQL
SQL Server 与 Access/Excel 数据转换方法 SQL Server 支持通过 DTS 向导或 Transact-SQL 语句实现与 Access 及 Excel 之间的数据导入导出。本文演示了使用 OpenDataSource、OPENROWSET 函数查询和写入数据的 T-SQL 语法,以及利用 bcp 命令导出 Excel 文件的步骤,包含 Jet OLE DB 提供程序配置参数及 VB6 ADO 应用示例。
雪落无声 发布于 2012/2/14 更新于 2026/4/21 1 浏览SQL Server 支持通过 DTS 向导或 Transact-SQL 语句进行数据导入导出。主要使用 OpenDataSource 函数、OPENROWSET 函数实现 SQL Server、Access、Excel 之间的数据转换。
一、SQL Server 和 Access 的数据导入导出
1. 常规数据导入导出(DTS 向导) 使用 DTS 向导迁移 Access 数据到 SQL Server 的步骤如下:
在 SQL Server 企业管理器的 Tools(工具)菜单上,选择 Data Transformation Services(数据转换服务),然后选择 Import Data(导入数据)。
在 Choose a Data Source(选择数据源)对话框中选择 Microsoft Access as the Source,键入 .mdb 文件名或通过浏览寻找该文件。
在 Choose a Destination(选择目标)对话框中,选择 Microsoft OLE DB Provider for SQL Server,选择数据库服务器,并单击必要的验证方式。
在 Specify Table Copy 或 Query 对话框中,单击 Copy tables(复制表格)。
在 Select Source Tables 对话框中,单击 Select All(全部选定),完成操作。
2. Transact-SQL 语句导入导出 在 SQL Server 里查询 Access 数据:
SELECT *
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0' , 'Data Source="C:\\DB.mdb";User ID=Admin;Password=' , '表名' )
SELECT *
INTO newtable
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0' , 'Data Source="C:\\DB.mdb";User ID=Admin;Password=' , '表名' )
将 SQL Server 表里的数据插入到 Access 表中:
INSERT INTO OPENROWSET('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
二、SQL Server 和 Excel 的数据导入导出
1. 在 SQL Server 里查询 Excel 数据 SELECT *
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0' , 'Data Source="C:\\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0' , '[Sheet1$]' )
SELECT *
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0' , 'Data Source="C:\\Finance\\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0' , 'xactions' )
2. 将 Excel 的数据导入 SQL Server SELECT * INTO newtable
FROM OPENROWSET('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"'
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'"
4. 在 SQL Server 里往 Excel 插入数据 INSERT INTO OPENROWSET('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)' )
INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0' , 'Extended Properties=Excel 8.0;Data Source=C:\\training\\inventur.xls' , '[Filiale1$]' )
(bestand, produkt) VALUES (20 , 'Test' )
相关免费在线工具 SQL 美化和格式化 在线格式化和美化您的 SQL 查询(它支持各种 SQL 方言)。 在线工具,SQL 美化和格式化在线工具,online
SQL转CSV/JSON/XML 解析 INSERT 等受限 SQL,导出为 CSV、JSON、XML、YAML、HTML 表格(见页内语法说明)。 在线工具,SQL转CSV/JSON/XML在线工具,online
CSV 工具包 CSV 与 JSON/XML/HTML/TSV/SQL 等互转,单页多 Tab。 在线工具,CSV 工具包在线工具,online
Base64 字符串编码/解码 将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
Base64 文件转换器 将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
Markdown转HTML 将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online