Sql server 如何在SQL中创建用于几个ADF活动的临时表?

Sql server 如何在SQL中创建用于几个ADF活动的临时表?,sql-server,azure-data-factory-2,Sql Server,Azure Data Factory 2,在执行Azure数据工厂管道时,我需要在我的SQL Server中创建一个全局临时表。此表将用于多项活动 我已经尝试了几种方法,包括一种使用存储过程活动作为参数,该活动的目标是sys.sp_executesqlsp和CREATE TABLE语句。使用这种方法,表实际上是被创建的,但是它会自动地在一秒钟后被删除,我不明白为什么 这是用于创建临时表的脚本: CREATE TABLE ##tempGL ( GLAccount NVARCHAR(15), GLSubAccount NVA

在执行Azure数据工厂管道时,我需要在我的SQL Server中创建一个全局临时表。此表将用于多项活动

我已经尝试了几种方法,包括一种使用存储过程活动作为参数,该活动的目标是
sys.sp_executesql
sp和
CREATE TABLE
语句。使用这种方法,表实际上是被创建的,但是它会自动地在一秒钟后被删除,我不明白为什么

这是用于创建临时表的脚本:

CREATE TABLE ##tempGL
(
    GLAccount NVARCHAR(15),
    GLSubAccount NVARCHAR(15)
)

那么,如何从Azure Data Factory管道活动创建一个SQL Server临时表,该活动一直持续到我放弃它为止?

我自己也一直在努力解决这个问题。显然,这是出于设计(请参阅下面Microsoft员工的报价),使用Azure Data Factory实现这一点是不可能的,尽管文档中提到这是可能的

这是故意的。我们不会在两个活动之间保持联系。 如果使用真实表而不是临时表。然后你会得到预期的结果。 建议不要在ADF中使用临时表,如果数据需要访问多个活动

发生这种情况的原因是当管道活动结束时会话被删除,这会导致临时表也被删除

当创建表的会话结束并且所有其他任务停止引用全局临时表时,全局临时表将自动删除。任务和表之间的关联仅在单个Transact-SQL语句的生命周期内保持。这意味着在创建会话结束时,在最后一条主动引用表的Transact-SQL语句完成时,将删除全局临时表

希望Microsoft能在某个时候解决这个问题,并使在Azure Data Factory的活动中使用临时表成为可能


我在这里提出这一点,作为对Azure的建议


对于任何阅读此文章的人,如果想要他的功能,请向上投票。您可以发布您的
create table
脚本吗?临时表仅在创建它的会话期间存在。如果您使用
sp_executesql
,那么它将在您运行的(动态?)SQL上下文中创建,并且一旦该批处理完成,临时表将被删除。在使用
sp_executesql
之前,您需要创建临时表,然后它将一直保持到外部会话关闭为止。为了演示,我刚刚用脚本更新了问题。我无法在那里复制您的行为:。我们在这里缺少了一些东西。@Larnu是的,这个场景通常在SQL Server中工作,但是这次,这个场景不同了,因为它在Azure数据工厂管道中运行,所以在活动执行之后,有一些东西正在删除我的表。