我需要每天从在线可用的 csv 执行数据加载,例如http://www.supplier.com/products.csv http://www.supplier.com/products.csv一旦我将 csv 转储到 sql 表中,我就可以进行处理,然后需要更新/插入等。问题是我不知道如何自动加载数据。
我希望我可以使用一个 SQL 作业/任务,计划在每天 06:00 运行,给它一个 uri,然后它可以访问 csv 中的数据...
我怎样才能做到这一点?
您可以安排 SQL 代理作业将文件下载到本地并使用批量插入 http://msdn.microsoft.com/en-us/library/ms188365.aspx:
CREATE TABLE StagingCSV
(
col1 VARCHAR(60),
col2 VARCHAR(60),
col3 VARCHAR(60),
col4 VARCHAR(60),
-- ...
)
GO
(错误行将被忽略)
BULK
INSERT StagingCSV
FROM 'c:\mycsvfile.txt'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
GO
其他方法:
关于批量导入和批量导出操作 http://msdn.microsoft.com/en-us/library/ms187042.aspx
使用 BULK INSERT 或 OPENROWSET 导入批量数据 http://msdn.microsoft.com/en-us/library/ms175915.aspx
您可以使用 Powershell 下载文件:
$clnt = new-object System.Net.WebClient
$url = "http://www.supplier.com/products.csv "
$file = "c:\temp\Mycsv.txt"
$clnt.DownloadFile($url, $file)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)