将csv数据从安全URL导入表中

时间:2013-06-26 04:33:48

标签: sql sql-server stored-procedures sql-server-2012

我可以访问一个系统,如果您在浏览器中输入网址,它将自动下载.csv文件。网址格式如下

https://secure.company.com/csv.cgi?user=username;password=password

我想做的是以某种方式让MS SQL Server 2012自动完成所有下载并导入到表中。

这甚至可能吗? 作为noob猜测它是通过存储过程完成的吗? 如果是这样,那么如何编码呢?​​

2 个答案:

答案 0 :(得分:0)

如何使用wget之类的内容下载文件,然后查看此blog post以了解如何将CSV文件导入数据库。

答案 1 :(得分:0)

即使有可能使用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();

}