[英]Retrieving remote files based on data from table and whether they exist locally using SQL Server 2008
任何人都可以告訴我執行此任務的最佳方法,我不希望為我寫的腳本(我喜歡學習),我只需要一個指針即可,這是解決問題的最佳方法,
我為目錄中的每個產品下載了名為( ProdId.xml
)的xml文件。
我從SQL Server 2008表產品中獲得了產品ID的列表。 目前,將它們放入Excel並在每個文件之前放置wget語句,並提供完整路徑以及用戶文件源的用戶名和密碼。
例如
wget website/xmlfiles/prodid.xml – username – password
我會為每個文件執行此操作。
我想自動化該過程,因此每天提取所有產品ID的檢查信息,以查看文件是否已存在,然后從網站上收集該文件。
我該怎么做?
我建議您考慮編寫一個SQL Server Integration Services或SSIS包來為您執行此操作。 SSIS可用於數據提取,轉換和加載。
在線上有很多關於SSIS的教程。 這里有一些:
最后使用了這個腳本
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.