任何人都可以告诉我这项任务的最佳方式,我不希望为我编写脚本(我喜欢学习)我只需要一个指针,这将是解决问题的最佳方法,< / p>
我为我们的目录中的每个产品下载了标题为ProdId.xml
)
我从SQL Server 2008表产品中获取了产品ID列表。并且目前将它们放入Excel并在每个文件之前放置一个wget语句,其中包含我的文件源的完整路径和用户名和密码。
E.g。
wget website/xmlfiles/prodid.xml – username – password
我为每个文件执行此操作。
我想自动化这个过程,所以每天提取所有产品ID的检查,看看文件是否已经存在,如果没有从网站上收集。
我该怎么做?
答案 0 :(得分:0)
我建议您考虑编写一个SQL Server Integration Services or SSIS包来为您执行此操作。 SSIS可用于数据提取,转换和加载。
网上有很多关于SSIS的教程。以下是一些:
MS SQL Tips - SQL Server Integration Services (SSIS)
SSIS Tutorial: SQL Server 2005 Integration Services Tutorial
答案 1 :(得分: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