无需 SSIS 即可将数据从 Excel 文件导入 Azure SQL 数据库。您只需安排将这些 Excel 文档上传到 Azure 存储帐户,然后您就可以使用 OPENQUERY 或 BULK INSERT 将它们导入 Azure SQL 数据库。
首先使用存储帐户的密钥创建一个 SCOPED CREDENTIAL。
CREATE DATABASE SCOPED CREDENTIAL UploadInvoices
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'sv=2018-03-28&ss=b&srt=sco&sp=rwdlac&se=2019-08-31T02:25:19Z&st=2019-07-30T18:25:19Z&spr=https&sig=KS51p%2BVnfUtLjMZtUTW1siyuyd2nlx294tL0mnmFsOk%3D';
现在创建一个映射存储帐户的外部数据源。
CREATE EXTERNAL DATA SOURCE MyAzureInvoices
WITH (
TYPE = BLOB_STORAGE,
LOCATION = 'https://newinvoices.blob.core.windows.net',
CREDENTIAL = UploadInvoices
);
使用 OPENROWSET 导入 Excel 文档。
SELECT * FROM OPENROWSET(
BULK 'week3/inv-2017-01-19.csv',
DATA_SOURCE = 'MyAzureInvoices',
FORMAT = 'CSV',
FORMATFILE='invoices.fmt',
FORMATFILE_DATA_SOURCE = 'MyAzureInvoices'
) AS DataFile;
使用 BULK INSERT,指定存储帐户上的容器和文件描述:
BULK INSERT Colors2
FROM 'week3/inv-2017-01-19.csv'
WITH (DATA_SOURCE = 'MyAzureInvoices',
FORMAT = 'CSV');
您可以使用 Azure 自动化来自动执行此操作,以使用 OPENQUERY 和 BULK INSERT 导入 Excel 文件来安排存储过程的执行。