用DTS导入多个文件数据到SQLServer中
时间:2007-12-23 来源:不详 作者:迈克DB
试验环境
我们先创建整个试验的环境。创建文件目录“C:\MyImport”,和三个文件a.csv、b.csv和c.csv,文件内容如下。同时,在SQLServer中创建一个表用来存放导入的数据。
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
CreateDatabaseBank
Go
织梦内容管理系统
UseBank
go
CreatetableAccount([ID]int,NameVarchar(100),
AccountNovarchar(100),Balancemoney)
Go
Createtablelogtable(idintidentity(1,1),
Statusvarchar(500),
Importeddatedatetimedefaultgetdate())
Go
usemaster
go
sp_addlogin’importuser’,’import’,’Bank’
go
useBank
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、创建TextFile(Source)和SQLServer连接,并创建数据转换任务,如下图所示。
3、设置数据转换的对应关系如下图。
4、创建动态属性任务(dynamictasks):连接InputFile中,设置Catalog的值为全局变量DatabaseName,DataSource的值为全局变量FileName;连接SQLServer中,设置DataSource的值为全局变量ServerName。
copyright dedecms
5、增加一个“成功时”的工作流在动态属性任务和连接InputFile之间。
6、如下图那样,创建一个执行SQL任务,来保存数据导入的记录。
SQL为INSERTINTOLogTable(Status)VALUES(?)
点击参数,来设置参数,设置参数1为全局变量FileName。
7、增加一个“成功时”的工作流在连接SQLServer和执行SQL任务之间。
8、将DTS包保存成结构化存储文件。你也可以保存在SQLServer中,但我们这里只讨论保存成结构化存储文件的方式。
创建批处理文件
如下所示创建批处理文件C:\MyImport\Import.bat。
REMType:BatchFile
REMCreatedby:Digjim
REMImportallcsvfilestoSQLServerusingDTS
REMExportDIRlistingtoC:\MyImport\Dirlist.txt
dirc:\MyImport\*.csv/b>C:\MyImport\Dirlist.txt
REMExecuteDTSpackageforeveryfilenameintheDirlist.txt
for/f"tokens=1,2,3"%%iin(C:\MyImport\Dirlist.txt)do"C:\ProgramFiles\MicrosoftSQLServer\80\Tools\Binn\DTSrun.exe"-F"c:\myimport\myimportdts1.dts"-Uimportuser-Pimport–A"ServerName"="DIGJIM"-A"FileName"="c:\myimport\%%i"-A"DatabaseName"="Bank"
上一篇:快速转移数据的方法 下一篇:让数据库产生一张详细的日历表
文章评论
共有位Admini5网友发表了评论 查看完整内容