0

谁能告诉我完成这项任务的最佳方法,我不希望为我编写脚本(我喜欢学习)我只需要一个指针,这将是解决问题的最佳方法,

我为目录中标题为 ( ProdId.xml)的每个产品下载了 xml 文件

我从我的 SQL Server 2008 表产品中获得了产品 ID 的列表。目前将它们放入 Excel 并在每个文件之前放置一个 wget 语句,其中包含我的文件源的完整路径以及用户名和密码。

例如

wget website/xmlfiles/prodid.xml – username – password

我对每个文件都这样做。

我想自动化这个过程,所以每天提取所有产品 ID 的检查以查看文件是否已经存在,如果不存在则从网站收集。

我该怎么做?

4

2 回答 2

0

最后使用了这个脚本

DECLARE @Product_ID INT
DECLARE Product CURSOR
FOR SELECT Product_ID
FROM dbo.table

OPEN Product

declare @Paths varchar(128) ,
@FileName varchar(128),
@FileExtension varchar(128)

FETCH NEXT FROM Product
INTO    @Product_ID

WHILE @@FETCH_STATUS = 0
BEGIN

select  @Paths = 'C:\Data\xmls\' ,
@FileExtension = '.xml',
@FileName = @Product_ID


declare @objFSys int
declare @i int
declare @File varchar(1000)

select @File = @Paths + @FileName + @FileExtension
exec sp_OACreate 'Scripting.FileSystemObject', @objFSys out
exec sp_OAMethod @objFSys, 'FileExists', @i out, @File
if @i = 1
print 'Allready There ' + CONVERT(VARCHAR(36), @Product_ID)
else

PRINT 'Neet to get ' + CONVERT(VARCHAR(36), @Product_ID) + '.xml From Source.'

FETCH NEXT FROM Product
INTO @Product_ID

exec sp_OADestroy @objFSys 
END

CLOSE Product
DEALLOCATE Product
于 2012-07-04T11:51:18.687 回答
0

我建议考虑编写SQL Server Integration Services 或 SSIS包来为您执行此操作。SSIS 可用于数据提取、转换和加载。

网上有很多关于 SSIS 的教程。这里有几个:

MS SQL 提示 - SQL Server 集成服务 (SSIS)

SSIS 教程:SQL Server 2005 集成服务教程

SSIS 教程:创建简单的 ETL 包

于 2012-07-03T12:04:54.800 回答