Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server TSQL";批量插入“;从Macbook_Sql Server_Macos_Tsql_Azure_Bulkinsert - Fatal编程技术网

Sql server TSQL";批量插入“;从Macbook

Sql server TSQL";批量插入“;从Macbook,sql-server,macos,tsql,azure,bulkinsert,Sql Server,Macos,Tsql,Azure,Bulkinsert,这些是涉及的对象: 我的Macbook 托管在Azure中的SQL Server SQL Server客户端:DbVisualizer或macsqlclient(如Window的Management Studio) 我的Mac电脑中的一个文件位于\Users\john\persons.csv 我正在尝试使用sql客户端执行TSQL批量插入,如下所示: BULK INSERT persons from '\users\john\persons.csv' WITH ( DATAFI

这些是涉及的对象:

  • 我的Macbook
  • 托管在Azure中的SQL Server
  • SQL Server客户端:
    DbVisualizer
    macsqlclient
    (如Window的Management Studio)
  • 我的Mac电脑中的一个文件位于
    \Users\john\persons.csv
我正在尝试使用sql客户端执行TSQL批量插入,如下所示:

BULK INSERT persons from '\users\john\persons.csv'
WITH 
  (
    DATAFILETYPE = 'char',
    FIELDTERMINATOR = ',',
    ROWTERMINATOR = '\r\n'
  );
但我得到了一个错误:

 Cannot bulk load because the file "\users\john\persons.csv" could not be opened.
 Operating system error code (null).

…我该如何解决这个问题?我应该在Macbook中使用什么文件路径?

您需要在Azure中拥有一个存储帐户才能使用批量插入。以下是步骤

步骤1:

创建外部数据源MyAzureBlobStorage 使用(类型=BLOB_存储, 位置=“”, 凭证=MyAzureBlobStorageCredential)

第二步:
现在,您需要将文件放在blob容器中,并像下面那样访问它

BULK INSERT Product
FROM 'product.csv'
WITH (  DATA_SOURCE = 'MyAzureBlobStorage',
        FORMAT='CSV', CODEPAGE = 65001, --UTF-8 encoding
        FIRSTROW=2,
        TABLOCK); 
如果blob是公共的,则不需要凭据,否则需要创建凭据

- CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'some strong password';

-- 1.1.2. (optional) Create credential with Azure Blob SAS
--
-- CREATE DATABASE SCOPED CREDENTIAL MyAzureBlobStorageCredential 
-- WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
-- SECRET = 'sv=2015-12-11&ss=b&srt=sco&sp=rwac&se=2017-02-01T00:55:34Z&st=2016-12-29T16:55:34Z&spr=https&sig=copyFromAzurePortal';
-- NOTE: DO NOT PUT FIRST CHARACTER '?'' IN SECRET!!!
参考文献:

您需要在Azure中拥有一个存储帐户才能使用批量插入。以下是步骤

步骤1:

创建外部数据源MyAzureBlobStorage 使用(类型=BLOB_存储, 位置=“”, 凭证=MyAzureBlobStorageCredential)

第二步:
现在,您需要将文件放在blob容器中,并像下面那样访问它

BULK INSERT Product
FROM 'product.csv'
WITH (  DATA_SOURCE = 'MyAzureBlobStorage',
        FORMAT='CSV', CODEPAGE = 65001, --UTF-8 encoding
        FIRSTROW=2,
        TABLOCK); 
如果blob是公共的,则不需要凭据,否则需要创建凭据

- CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'some strong password';

-- 1.1.2. (optional) Create credential with Azure Blob SAS
--
-- CREATE DATABASE SCOPED CREDENTIAL MyAzureBlobStorageCredential 
-- WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
-- SECRET = 'sv=2015-12-11&ss=b&srt=sco&sp=rwac&se=2017-02-01T00:55:34Z&st=2016-12-29T16:55:34Z&spr=https&sig=copyFromAzurePortal';
-- NOTE: DO NOT PUT FIRST CHARACTER '?'' IN SECRET!!!
参考文献:

hmmm。。。我应该将步骤1中的代码粘贴到哪里?显然不是在我的DbVisualizer或macsqlclient中。我应该将其粘贴到azure的终端中吗?不,我假设您正在从某种编辑器运行批量插入,您可以使用azure portalIt中提供的编辑器<代码>创建外部数据源是TSQL命令HMMM。。。我应该将步骤1中的代码粘贴到哪里?显然不是在我的DbVisualizer或macsqlclient中。我应该将其粘贴到azure的终端中吗?不,我假设您正在从某种编辑器运行批量插入,您可以使用azure portalIt中提供的编辑器<代码>创建外部数据源是一个TSQL命令