选择显示字体大小

用dts导入多个文件数据到sql server中

在我们工作中,经常需要将保存在文件中的数据导入到sql serve的表中。有时可能需要同时从相同或不相同的文件目录中导入多个文件的数据到sql server中。这里我们将讨论如何使用批处理文件和dts从一个特定的文件目录中,导入多个文件的数据到sqlserver中。 
    试验环境
  我们先创建整个试验的环境。创建文件目录“c:\myimport”,和三个文件a.csv、b.csv和c.csv,文件内容如下。同时,在sql server中创建一个表用来存放导入的数据。
    c:\myimport\a.csv
    1, mak, a9411792711, 3400.25
    2, claire, a9411452711, 24000.33
    3, sam, a5611792711, 1200.34
    4, wright, a5611792711, 1200.34
    5, richard, g561d792755, 1223.34
    6, valarie, b5611792788, 1240.32
    c:\myimport\b.csv
    11, rubon, 9671792711, 400.14
    22, mike, 9418952711, 4000.56
    39, hsu, 75611792511, 1230.00
    c:\myimport\c.csv
    69, lucy, 8411992710, 305.11
    45, grace, 3413452713, 246.52
    33, saint, 5461795716, 1278.70
    
    create database bank
    go
    use bank
    go
    create table account([id] int, name varchar(100), 
    accountno varchar(100), balance money)
    go
    create table logtable (id int identity(1,1), 
   status varchar(500), 
   importeddate datetime default getdate())
    go
    use master
    go
    sp_addlogin ’importuser’,’import’,’bank’
    go
    use bank
    go
    sp_adduser ’importuser’
    go
    sp_addrolemember ’db_datareader’,’importuser’
    go
    sp_addrolemember ’db_datawriter’,’importuser’
    go
  创键dts
   1、在dts中创建3个全局变量,filename、servername和databasename。
  
  
  2、创建text file (source) 和sql server连接,并创建数据转换任务,如下图所示。
  
  3、设置数据转换的对应关系如下图。
  

  4、创建动态属性任务(dynamic tasks):连接inputfile中,设置catalog的值为全局变量databasename,datasource的值为全局变量filename;连接sqlserver中,设置datasource的值为全局变量servername。
  
    
  
  5、增加一个“成功时”的工作流在动态属性任务和连接inputfile之间。
  
  6、如下图那样,创建一个执行sql任务,来保存数据导入的记录。
  sql为insert into logtable (status) values (?)
  
  
  点击参数,来设置参数,设置参数1为全局变量filename。
    
  
  7、增加一个“成功时”的工作流在连接sqlserver和执行sql任务之间。
  
  8、将dts包保存成结构化存储文件。你也可以保存在sql server中,但我们这里只讨论保存成结构化存储文件的方式。
  
  创建批处理文件
  如下所示创建批处理文件c:\myimport\import.bat。
    rem type: batch file
    rem created by: digjim
    rem import all csv files to sql server using dts
 
    rem export dir listing to c:\myimport\dirlist.txt
    dir c:\myimport\*.csv /b > c:\myimport\dirlist.txt
 
    rem execute dts package for every file name in the dirlist.txt

    for /f "tokens=1,2,3" %%i in (c:\myimport\dirlist.txt) do "c:\program files\microsoft sql server\80\tools\binn\dtsrun.exe" -f "c:\myimport\myimportdts1.dts" -u importuser -p import –a "servername"="digjim" -a "filename"="c:\myimport\%%i" -a "databasename"="bank" 

    rem rename all the files with "old" as suffix
    ren c:\myimport\*.csv *.oldcsv
  执行批处理文件
   当批处理文件被执行以后,他会在c:\myimport目录下产生一个dirlist.txt的文件,这个文件会包含所有c:\myimport下扩展名为csv的文件,这些文件名会和其他必须的参数一气传输给dtsrun.exe。在这个例子里,dirlist.txt的内容如下:
    c:\myimport\dirlist.txt
    acsv
    b.csv
    c.csv
   注意,在批处理文件中,根据你自己的情况设置servername,filename和databasename参数。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons