我可以访问一个系统,如果你在浏览器中输入一个 url,它会自动下载一个 .csv 文件。网址格式如下
https://secure.company.com/csv.cgi?user=username;password=password
我想做的是以某种方式让 MS SQL Server 2012 完成所有下载并自动导入表中。
这甚至可能吗?作为一个菜鸟猜测它会通过存储过程完成吗?如果是这样,一个人将如何编码这样的事情?
我可以访问一个系统,如果你在浏览器中输入一个 url,它会自动下载一个 .csv 文件。网址格式如下
https://secure.company.com/csv.cgi?user=username;password=password
我想做的是以某种方式让 MS SQL Server 2012 完成所有下载并自动导入表中。
这甚至可能吗?作为一个菜鸟猜测它会通过存储过程完成吗?如果是这样,一个人将如何编码这样的事情?
如何使用wget
下载文件之类的东西,然后查看这篇博客文章,了解如何将 CSV 文件导入数据库。
尽管可能有一种方法可以使用 SQL Server 发送 http 请求,但使用 SQL 查询,我强烈建议您从 C# 执行此操作。您可以为此开发一个小型应用程序或使用 CLR 存储过程。
只需更新 YourTable 和下载路径,就可以了。
protected const string FILE_NAME = @"C:\tablevalues.csv";
protected const string SQL_INSERT = "BULK INSERT YourTable FROM {0} WITH ( FIELDTERMINATOR = ',', ROWTERMINATOR = '\n')";
protected void DownloadFile()
{
WebClient webClient = new WebClient();
webClient.DownloadFile("https://secure.company.com/csv.cgi?user=username;password=password", FILE_NAME);
SqlConnection sqlConnection = new SqlConnection("connection string");
SqlCommand sqlCommand = new SqlCommand(string.Format(SQL_INSERT, FILE_NAME), sqlConnection);
sqlConnection.Open();
sqlCommand.ExecuteNonQuery();
sqlConnection.Close();
sqlConnection.Dispose();
}