首页 > 解决方案 > 动态定位路径 SQL 外表

问题描述

我试图做的是通过 Azure Synapse 从数据湖接收数据并将其导出到另一个数据湖。这种转移已经奏效。我遇到的问题是,当我想在同一位置存储第二组数据时。我收到“外部表位置已存在”的错误。我的第一次尝试是获取已存储的数据,将其与新数据集连接起来,并将其存储回数据湖中的容器中。不幸的是,我收到了同样的错误。因此,我想将我的(每日)新数据集存储在单独的目录中。作为这些目录的名称,我想使用时间戳。我的声明:

DECLARE @timestamp varchar(42);
SET @timestamp = CONVERT(date, SYSDATETIME());
DECLARE @path varchar(42);
SET @path = CONCAT ( '/myMainFolder/' , @timestamp , '/');
CREATE EXTERNAL TABLE export
WITH ( LOCATION = @path
    ,DATA_SORUCE = [historicalexport]
    ,FILE_FORMAT = MY_CSV
    )
AS
SELECT TOP 1000 *
FROM dbo.anExternalTable

由于“'@path' 附近的语法不正确”,执行此操作会引发错误。但为什么?有人知道吗?打印出@path 时,它完全符合我的要求,没有空格等……@path = '/myMainFolder/TODAYSDATE/'

提前感谢您的帮助!托马斯

标签: sqltsqlvariablespath

解决方案


推荐阅读