快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

用DTS导入多个文件数据到SQL SERVER中

在我们工作中,常常需要将保存在文件中的数据导入到SQL Serve的表中。有时可能需要同时从一样或不一样的文件目录中导入多个文件的数据到SQL Server中。这里我们将讨论如何使用批处理文件和DTS从一个特定的文件目录中,导入多个文件的数据到 SQLServer中。
试验环境
  我们先创建整个试验的环境。创建文件目录“C:MyImport”,和三个文件a.csv、b.csv和c.csv,文件内容如下。同时,在SQL Server中创建一个表用来存放导入的数据。
    C:MyImporta.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:MyImportb.csv
    11, Rubon, 9671792711, 400.14
    22, Mike, 9418952711, 4000.56
    39, Hsu, 75611792511, 1230.00
    C:MyImportc.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:MyImportImport.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:MyImportDirlist.txt
    dir c:MyImport*.csv /b > C:MyImportDirlist.txt

    REM Execute DTS package for every file name in the Dirlist.txt

    for /f "tokens=1,2,3" %%i in (C:MyImportDirlist.txt) do "C: Program FilesMicrosoft SQL Server80ToolsBinnDTSrun.exe" -F "c:myimportmyimportdts1.dts" -U importuser -P import ?CA "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:MyImportDirList.txt
    acsv
    b.csv
    c.csv
  注重,在批处理文件中,根据你自己的情况设置ServerName,FileName和DatabaseName参数。
返回类别: 教程
上一教程: SQL SERVER 7.0 入门(二)
下一教程: 小写转大写金额

您可以阅读与"用DTS导入多个文件数据到SQL SERVER中"相关的教程:
· 用DTS导入多个文件数据到SQL Server中
· 用T-SQL导入文件数据到SQL SERVER
· 用T-SQL导入文件数据到SQL Server
· SQL SERVER2000数据库文件损坏时如何恢复
· SQL Server数据库文件恢复技术
    微笑服务 优质保证 索取样品