如何从在线CSV插入SQL Server数据库数据?

Sim*_*tin 2 t-sql sql-server

我需要每天从网上提供的csv执行dataload,例如http://www.supplier.com/products.csv 一旦我将csv转储到sql表中,我可以进行处理,然后需要更新/插入等问题是我不知道如何自动化dataload.

我希望我能在06:00使用SQL工作/任务,计划每天运行,给它一个URI,它可能然后访问的CSV数据...

我怎样才能做到这一点?

Mit*_*eat 5

您可以安排SQL代理作业在本地下载文件并使用BULK INSERT:

CREATE TABLE StagingCSV
(
   col1 VARCHAR(60),
   col2 VARCHAR(60),
   col3 VARCHAR(60),
   col4 VARCHAR(60),
    -- ...
)
GO
Run Code Online (Sandbox Code Playgroud)

(错误行将被忽略)

BULK
INSERT StagingCSV
FROM 'c:\mycsvfile.txt'
WITH
(
   FIELDTERMINATOR = ',',
   ROWTERMINATOR = '\n'
)
GO
Run Code Online (Sandbox Code Playgroud)

其他方法:

关于批量导入和批量导出操作

使用BULK INSERT或OPENROWSET导入批量数据

您可以使用Powershell下载文件:

$clnt = new-object System.Net.WebClient
$url = "http://www.supplier.com/products.csv "
$file = "c:\temp\Mycsv.txt"
$clnt.DownloadFile($url, $file)
Run Code Online (Sandbox Code Playgroud)