用DTS导入多个文档数据到SQL Server中
2008-04-02 10:58:20来源:互联网 阅读 ()
试验环境
我们先创建整个试验的环境。创建文档目录“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参数。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash