SQL Synapse,在 CREATE EXTERNAL TABLE 中使用动态/参数化 Azure 容器
Posted
技术标签:
【中文标题】SQL Synapse,在 CREATE EXTERNAL TABLE 中使用动态/参数化 Azure 容器【英文标题】:SQL Synapse, use dynamic/parameterized Azure Container in CREATE EXTERNAL TABLE 【发布时间】:2020-12-24 04:42:46 【问题描述】:我们有一个场景,源 csv 文件由客户隔离,即每个客户在 Azure 存储中都有一个容器。
在 SQL Synapse 中创建外部表时,是否可以将容器名称作为参数传递,这样 SQL Synapse DB 中没有多个外部数据表?
CREATE EXTERNAL DATA SOURCE AzureBlobStorage with (
TYPE = HADOOP,
LOCATION ='wasbs://<**container100**>@<accountname>.blob.core.windows.net',
CREDENTIAL = AzureStorageCredential
);
CREATE EXTERNAL TABLE [dbo].[res1_Data] (
[ID] INT,
[UniqueId] VARCHAR(50),
[Status] VARCHAR(50) NULL,
[JoinedDate] DATE
)
WITH (LOCATION='<**container2**>/<folder>/<file>.csv',
DATA_SOURCE = AzureBlobStorage,
FILE_FORMAT = CEFormat
);
【问题讨论】:
【参考方案1】:很遗憾,您不能在 DDL 命令中使用变量。但是,您可以构建动态语句,然后使用 sp_executesql 执行此操作。
更多信息here。
【讨论】:
以上是关于SQL Synapse,在 CREATE EXTERNAL TABLE 中使用动态/参数化 Azure 容器的主要内容,如果未能解决你的问题,请参考以下文章
Azure Synapse 专用 sql 池未在 Synapse Studio 中显示数据对象
在 Synapse 管道中编写 SQL 查询查找活动返回错误消息
如何在 Synapse (Azure SQL DW) 上检索视图定义?
Azure Synapse 管道:如何将增量更新从 SQL Server 移动到 Synapse 以处理数字