我有一个包含多个容器的 Azure Data Lake Storage(第 2 代)帐户。我想导入salesorderdetail.csv
文件从 Sales 容器复制到 Azure SQL 数据库中。
我已经使用 Azure 数据工厂成功构建了相同的流程,但现在我想尝试仅通过标准 T-SQL 语句来实现此功能。
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'XxxxxxXX#'
CREATE DATABASE SCOPED CREDENTIAL MK_Cred_Data_Load
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'sv=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%3D';
CREATE EXTERNAL DATA SOURCE MK_ADLS_Sales
WITH (TYPE = BLOB_STORAGE,
LOCATION = 'https://mkpracticestorageaccount.blob.core.windows.net/sales',
CREDENTIAL = MK_Cred_Data_Load);
上面的代码似乎工作正常,因为我可以看到在 SSMS 的对象资源管理器窗口中创建的外部数据源:
以下代码应将 salesorderdetail.csv 文件中的数据插入到[lnd].salesorderdetail
table:
TRUNCATE TABLE [lnd].[SalesOrderDetail]
BULK INSERT [lnd].[SalesOrderDetail]
FROM 'salesorderdetail.csv'
WITH (DATA_SOURCE = 'MK_ADLS_Sales', FORMAT = 'CSV', FIRSTROW=2,
FIELDTERMINATOR = ',', ROWTERMINATOR = '\n')
相反,它输出以下错误消息:
找不到引用的外部数据源“MK_ADLS_Sales”。
我也尝试过以下操作,但出现与上面相同的错误消息。
SELECT *
FROM OPENROWSET(BULK 'salesorderdetail.csv',
DATA_SOURCE = 'MK_ADLS_Sales',
SINGLE_CLOB) AS DataFile;
有人可以帮忙吗?谢谢!
(使用 SSMS v17.9、Azure SQL 数据库标准版、Windows 10)