Sql server 在SSMS中使用存储过程时,在Azure SQL DB中使用大容量插入时出错

Sql server 在SSMS中使用存储过程时,在Azure SQL DB中使用大容量插入时出错,sql-server,azure,Sql Server,Azure,我正在尝试将数据从本地CSV文件导入Azure数据库。其想法是允许客户使用预先格式化的CSV文件在系统中进行批量插入 我使用的代码是: BULK INSERT tmp_Import_Truck FROM 'C:\ImportFrom\ImportData.csv' WITH ( FIELDTERMINATOR =',', ROWTERMINATOR = '\n' ) 问题是我得到了一个eror,它无法打开文件 Msg 4

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

我使用的代码是:

    BULK INSERT tmp_Import_Truck
   FROM 'C:\ImportFrom\ImportData.csv'
   WITH
     (
        FIELDTERMINATOR =',',
        ROWTERMINATOR = '\n'
      )
问题是我得到了一个eror,它无法打开文件

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


如何解决此问题?

您不能在文件名为的Azure SQL DB中使用
批量插入
,因为它应该在SQL Server计算机上

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

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

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