首页 > 数据库 > SQL Server > 正文

SQL SERVER与ACCESS、EXCEL数据转换

2024-08-31 00:49:36
字体:
来源:转载
供稿:网友
  • 网站运营seo文章大全
  • 提供全面的站长运营经验及seo技术!
  • 熟悉sql server 2000的数据库管理员都知道,其dts可以进行数据的导入导出,其实,我们也可以使用transact-sql语句进行导入导出操作。在 transact-sql语句中,我们主要使用opendatasource函数、openrowset 函数,关于函数的详细说明,请参考sql联机帮助。利用下述方法,可以十分容易地实现sql server、access、excel数据转换,详细说明如下:

        一、sql server 和access的数据导入导出

        常规的数据导入导出:使用dts向导迁移你的access数据到sql server,你可以使用这些步骤:

        1在sql server企业管理器中的tools(工具)菜单上,选择data transformation

        2services(数据转换服务),然后选择 czdimport data(导入数据)。

        3在choose a data source(选择数据源)对话框中选择microsoft access as the source,然后键入你的。mdb数据库(。mdb文件扩展名)的文件名或通过浏览寻找该文件。

        4在choose a destination(选择目标)对话框中,选择microsoft ole db prov ider for sql server,选择数据库服务器,然后单击必要的验证方式。

        5在specify table copy(指定表格复制)或query(查询)对话框中,单击copy tables(复制表格)。

        6在select 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:////////////////trade.mdb///////////////'; ///////////////'admin///////////////'; ///////////////'///////////////', 表名) select * from sqltablename

        二、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$]

        下面是个查询的示例,它通过用于 jet 的 ole db 提供程序查询 excel 电子表格。

        select * from opendatasource ( ///////////////'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 opendatasource( ///////////////'microsoft.jet.oledb.4.0///////////////',///////////////'data source="c:////////////////book1.xls";user id=admin;password=;extended properties=excel 5.0///////////////')……[sheet1$]

        实例:select * into newtable from opendatasource( ///////////////'microsoft.jet.oledb.4.0///////////////',///////////////'data source="c:////////////////finance////////////////account.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:////////////////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 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:////////////////training////////////////inventur.xls///////////////')……[filiale1$] (bestand, produkt) values (20, ///////////////'test///////////////')

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

    发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表