【问题标题】:Error when using bulk insert into Azure SQL DB when using stored proc in SSMS在 SSMS 中使用存储过程时使用批量插入 Azure SQL DB 时出错
【发布时间】:2019-05-06 17:45:19
【问题描述】:

我正在尝试将本地 CSV 文件中的数据导入 Azure 数据库。这个想法是允许客户使用预先格式化的 CSV 文件对系统进行批量插入。

我使用的代码是:

    BULK INSERT tmp_Import_Truck
   FROM 'C:\ImportFrom\ImportData.csv'
   WITH
     (
        FIELDTERMINATOR =',',
        ROWTERMINATOR = '\n'
      )

问题是我收到无法打开文件的错误。

消息 4861,级别 16,状态 1,行 1 无法批量加载,因为文件 无法打开“C:\ImportFrom\ImportData.csv”。操作系统 错误代码(空)。

我该如何解决这个问题?

【问题讨论】:

  • 此路径在您的本地计算机上,而 BULK INSERT 需要服务器上的文件。 Azure SQL DB 显然不会发生这种情况。
  • 我在本地运行 SSMS,到 Azure 的连接是远程的 - 我不能从本地计算机批量插入到 Azure 吗?如果没有,我如何将数据获取到 Azure 服务器(之前从未使用过 Azure)
  • 是的,批量插入中指定的路径将被SQL Server引擎打开,即它必须在服务器上。 SQL Server 无法读取磁盘上的文件。您需要使用 BCP 实用程序(正如我在下面的回答中向您展示的那样)或编写程序来执行批量插入操作。

标签: sql-server azure


【解决方案1】:

您不能在带有文件名的 Azure SQL DB 中使用 bulk insert,因为它应该在 SQL Server 计算机上。

您可以使用在您的计算机上执行的 BCP 实用程序将此文件批量复制到 Azure SQL:

bcp database.dbo.table in C:\ImportFrom\ImportData.csv
    -S yourserver.database.windows.net
    -U someusername -P strongpassword

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-02
    • 2022-07-05
    • 1970-01-01
    • 2021-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多