SQL SERVER 与ACCESS、EXCEL的数据转换

原创 2004年09月19日 21:32:00

熟悉SQL SERVER 2000的数据库管理员都知道,其DTS可以进行数据的导入导出,其实,我们也可以使用Transact-SQL语句进行导入导出操作。在Transact-SQL语句中,我们主要使用OpenDataSource函数、OPENROWSET 函数,关于函数的详细说明,请参考SQL联机帮助。利用下述方法,可以十分容易地实现SQL SERVERACCESSEXCEL数据转换,详细说明如下:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

一、           SQL SERVER ACCESS的数据导入导出

常规的数据导入导出:

使用DTS向导迁移你的Access数据到SQL Server,你可以使用这些步骤:

  1SQL SERVER企业管理器中的Tools(工具)菜单上,选择Data Transformation

  2Services(数据转换服务),然后选择  czdImport Data(导入数据)。

  3Choose a Data Source(选择数据源)对话框中选择Microsoft Access as the Source,然后键入你的.mdb数据库(.mdb文件扩展名)的文件名或通过浏览寻找该文件。

  4Choose a Destination(选择目标)对话框中,选择Microsoft OLE DB Prov ider for SQL Server,选择数据库服务器,然后单击必要的验证方式。

  5Specify Table Copy(指定表格复制)或Query(查询)对话框中,单击Copy tables(复制表格)。

6Select Source Tables(选择源表格)对话框中,单击Select All(全部选定)。下一步,完成。

 

Transact-SQL语句进行导入导出:

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

-- ======================================================

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表中

-- ======================================================

SQL SERVER 里运行:

insert into OpenDataSource( '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: rade.mdb'; 'admin'; ', 表名)

SELECT *

FROM sqltablename

 

二、           SQL SERVER EXCEL的数据导入导出

 

1、在SQL SERVER里查询Excel数据:

-- ======================================================

SELECT *

FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',

'Data Source="c:ook1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]

 

下面是个查询的示例,它通过用于 Jet OLE DB 提供程序查询 Excel 电子表格。

SELECT *

FROM OpenDataSource ( 'Microsoft.Jet.OLEDB.4.0',

  'Data Source="c:Financeaccount.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions

 

 

2、将Excel的数据导入SQL server :

-- ======================================================

SELECT * into newtable

FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',

  'Data Source="c:ook1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]

 

实例:

SELECT * into newtable

FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',

  'Data Source="c:Financeaccount.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions

 

 

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

-- ======================================================

T-SQL代码:

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: emp1.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 -<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />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 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)

 

T-SQL代码:

INSERT INTO 

 OPENDATASOURCE('Microsoft.JET.OLEDB.4.0', 

 'Extended Properties=Excel 8.0;Data source=C: raininginventur.xls')...[Filiale1$] 

 (bestand, produkt) VALUES (20, 'Test') 

 

总结:利用以上语句,我们可以方便地将SQL SERVERACCESSEXCEL电子表格软件中的数据进行转换,为我们提供了极大方便!

 --本文由chensheng913整理!

EXCEL:批量读取EXCEL文件给指定数据库(access,sql server)

读取文本文件到Excel并对数据列进行格式化 .style1 { border: medium double #E7E7E7; ...
  • kqkszx
  • kqkszx
  • 2014年04月27日 09:26
  • 1093

SQL Server、Access、Oracle数据库之优缺点对比

导读: 1、SQL Server是一个关系数据库管理系统。 2、ACCESS是由微软发布的关联式数据库管理系统。 3、Oracle是基于服务器的大型数据库。...
  • dtjiawenwang88
  • dtjiawenwang88
  • 2017年07月03日 22:31
  • 541

SQL Server数据导入到Access数据库

 将Access数据库数据导入到SQL Server 2005 第一步,开启SQLSERVER 2000服务管理,打开“企业管理器”,新建一个数据库,名称为“Access数据转换”; ...
  • liyanping521
  • liyanping521
  • 2014年12月19日 14:05
  • 1994

sql server 连接带密码的access

sql server 导入带密码的access数据 如何实现将Access的数据的导入到SQL Server呢,相信网络上有很多教程来帮助大家了。但是,大家发现如果access文档使用了密码加...
  • xcntime
  • xcntime
  • 2014年03月16日 01:23
  • 1375

将ACCESS数据库数据转到SQL server数据库中(通用)

把ACCESS数据库转换成SQL server数据库,ACCESSH和SQL server都有很多不同的版本,但是转换也都大同小易,和这里我给大家说说最常见的怎么将ACCESS转化成SQL serve...
  • yecats
  • yecats
  • 2015年09月27日 15:36
  • 1056

将ACCESS数据库迁移到SQLSERVER数据库方法(图文详解)

本人在做专业课设计时需要将自己动手把ACCESS数据库中数据转换到SQL Server数据库中。经过百般挫折也算是完成了,经过这般痛苦感觉,还是记录下来比较好,否则都对不起自己浪费的那好几个小时。废话...
  • aiming66
  • aiming66
  • 2016年12月31日 16:04
  • 5594

轻松教你SQL转ACCESS

SQL数据库转access数据库步骤: 1.      建立access数据库:在access中建立access数据库和表,access字段类型与sql中字段类型的对应关系。 2.        ...
  • fengyuzhengfan
  • fengyuzhengfan
  • 2014年04月13日 00:59
  • 2281

SQL2008链接Access数据库(.mdb)实现方法

SQL2008链接Access数据库(.mdb)实现方法在SQL SERVER里面叫做LINKED SERVER,通过ODBC实现与Access数据库的互联。第一步、依次打开:控制面板\所有控制面板项...
  • taosport
  • taosport
  • 2016年06月17日 11:59
  • 1318

sql server 表结构 导出 到excel

转载于:http://blog.163.com/chenluyu0910@126/blog/static/990422932011217102657776/
  • shandian534
  • shandian534
  • 2014年09月13日 09:23
  • 3916

【SQL Server技巧篇】如何使用Transact-SQL脚本语言导入Excel表

由于公司不向普通员工开放自有系统后台数据库的接入,但有时需要处理庞大数据量或输出特殊分析报表,这时候如果用Excel就比较卡顿了,处理时间长,报表也不一定能一步到位做出来。遇到这种情况,小屌我喜欢把E...
  • yang_hua_shu
  • yang_hua_shu
  • 2015年05月22日 19:11
  • 749
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL SERVER 与ACCESS、EXCEL的数据转换
举报原因:
原因补充:

(最多只允许输入30个字)