熟悉SQLSERVER2000的数据库管理员都知道,其DTS可以进行数据的导入导出,其实,我们也可以使用Transact-SQL语句进行导入导出操作。在Transact-SQL语句中,我们主要使用OpenDataSource函数、OPENROWSET函数,关于函数的详细说明,请参考SQL联机帮助。利用下述方法,可以十分容易地实现SQLSERVER、ACCESS、EXCEL数据转换,详细说明如下:

一、SQLSERVER和ACCESS的数据导入导出

常规的数据导入导出:
使用DTS向导迁移你的Access数据到SQLServer,你可以使用这些步骤:
  ○1在SQLSERVER企业管理器中的Tools(工具)菜单上,选择DataTransformation
  ○2Services(数据转换服务),然后选择czdImportData(导入数据)。
  ○3在ChooseaDataSource(选择数据源)对话框中选择MicrosoftAccessastheSource,然后键入你的.mdb数据库(.mdb文件扩展名)的文件名或通过浏览寻找该文件。
  ○4在ChooseaDestination(选择目标)对话框中,选择MicrosoftOLE DBProviderforSQL Server,选择数据库服务器,然后单击必要的验证方式。
  ○5在SpecifyTableCopy(指定表格复制)或Query(查询)对话框中,单击Copytables(复制表格)。
○6在SelectSourceTables(选择源表格)对话框中,单击SelectAll(全部选定)。下一步,完成。

Transact-SQL语句进行导入导出:
1.在SQLSERVER里查询access数据:

SELECT*FROMOpenDataSource('Microsoft.Jet.OLEDB.4.0','DataSource="c:\DB.mdb";UserID=Admin;Password=')...表名

2.将access导入SQLserver
在SQLSERVER里运行:
SELECT*INTOnewtableFROMOPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','DataSource="c:\DB.mdb";UserID=Admin;Password=')...表名

3.将SQLSERVER表里的数据插入到Access表中
在SQLSERVER里运行:
insertintoOpenDataSource('Microsoft.Jet.OLEDB.4.0','DataSource="c:\DB.mdb";UserID=Admin;Password=')...表名(列名1,列名2)select列名1,列名2fromsql表

实例:
insertintoOPENROWSET('Microsoft.Jet.OLEDB.4.0','C:\db.mdb';'admin';'',Test)selectid,namefromTest


INSERTINTOOPENROWSET('Microsoft.Jet.OLEDB.4.0','c:\trade.mdb';'admin';'',表名)SELECT*FROMsqltablename

二、SQLSERVER和EXCEL的数据导入导出

1、在SQLSERVER里查询Excel数据:

SELECT*FROMOpenDataSource('Microsoft.Jet.OLEDB.4.0','DataSource="c:\book1.xls";UserID=Admin;Password=;Extendedproperties=Excel5.0')...[Sheet1$]

下面是个查询的示例,它通过用于Jet的OLEDB提供程序查询Excel电子表格。
SELECT*FROMOpenDataSource('Microsoft.Jet.OLEDB.4.0','DataSource="c:\Finance\account.xls";UserID=Admin;Password=;Extendedproperties=Excel5.0')...xactions

2、将Excel的数据导入SQLserver:
SELECT*intonewtableFROMOpenDataSource('Microsoft.Jet.OLEDB.4.0','DataSource="c:\book1.xls";UserID=Admin;Password=;Extendedproperties=Excel5.0')...[Sheet1$]

实例:
SELECT*intonewtableFROMOpenDataSource('Microsoft.Jet.OLEDB.4.0','DataSource="c:\Finance\account.xls";UserID=Admin;Password=;Extendedproperties=Excel5.0')...xactions

3、将SQLSERVER中查询到的数据导成一个Excel文件
T-SQL代码:
EXECmaster..xp_cmdshell'bcp库名.dbo.表名outc:\Temp.xls-c-q-S"servername"-U"sa"-P""'
参数:S是SQL服务器名;U是用户;P是密码
说明:还可以导出文本文件等多种格式

实例:EXECmaster..xp_cmdshell'bcpsaletesttmp.dbo.CusAccountoutc:\temp1.xls-c-q-S"pmserver"-U"sa"-P"sa"'

EXECmaster..xp_cmdshell'bcp"SELECTau_fname,au_lnameFROMpubs..authorsORDERBYau_lname"queryoutC:\authors.xls-c-Sservername-Usa-Ppassword'

在VB6中应用ADO导出EXCEL文件代码:
DimcnAsNewADODB.Connection
cn.open"Driver={SQLServer};Server=WEBSVR;DataBase=WebMis;UID=sa;WD=123;"
cn.execute"master..xp_cmdshell'bcp"SELECTcol1,col2FROM库名.dbo.表名"queryoutE:\DT.xls-c-Sservername-Usa-Ppassword'"


4、在SQLSERVER里往Excel插入数据:

insertintoOpenDataSource('Microsoft.Jet.OLEDB.4.0','DataSource="c:\Temp.xls";UserID=Admin;Password=;Extendedproperties=Excel5.0')...table1(A1,A2,A3)values(1,2,3)

T-SQL代码:
INSERTINTO
OPENDATASOURCE('Microsoft.JET.OLEDB.4.0','ExtendedProperties=Excel8.0;Datasource=C:\training\inventur.xls')...[Filiale1$](bestand,produkt)VALUES(20,'Test')

总结:利用以上语句,我们可以方便地将SQLSERVER、ACCESS和EXCEL电子表格软件中的数据进行转换,为我们提供了极大方便!(微软中国社区)

更多相关文章

  1. SQL Server之JSON 函数详解
  2. mybatisplus的坑 insert标签insert into select无参数问题的解决
  3. python起点网月票榜字体反爬案例
  4. 《Android开发从零开始》——25.数据存储(4)
  5. Android系统配置数据库注释(settings.db)
  6. Android中不同应用间实现SharedPreferences数据共享
  7. use ffmpeg to setup streaming server on android
  8. android图表ichartjs
  9. Android内容提供者源码

随机推荐

  1. Android(安卓)蓝牙开发(九)A2DP基本功能
  2. android build.prop详解
  3. android避免service被杀 博客分类: androi
  4. eclipse 启动 Android SDK Content Loade
  5. Android之两种toast的实现
  6. Android adb 使用总结 (调试专用)
  7. Android TextView里显示两种颜色
  8. android com.handmark.pulltorefresh 使
  9. 用Javascript判断访问来源操作系统, 设备
  10. Android之仿iphone抖动效果