【问题标题】:Azure Data Factory Script Activity does not like the keyword GOAzure 数据工厂脚本活动不喜欢关键字 GO
【发布时间】:2022-11-24 11:51:00
【问题描述】:

如果我创建一个脚本,例如

print 'hello'
GO
print 'cats'
GO

然后当我尝试运行我的 ADF 管道时出现脚本错误:

对目标 GreetCatsActivity 的操作失败:“GO”附近的语法不正确。

脚本中不允许使用 GO 吗?问题是我需要它来运行一个自动生成的巨大脚本,其中包含大量 GO 语句。部分脚本可能会引用脚本中较早创建的内容,因此我怀疑 GO 语句对于确保创建供以后使用的项目很重要。

我可能做错了什么还是有另一种方法来处理这个问题?

【问题讨论】:

  • GO 不是 T-SQL 运算符,它被 IDE(类似)应用程序用作批处理分隔符。如果您有多个批次需要作为单独的批次运行,您可以为每个批次分隔节点。
  • GO 不是 Transact-SQL 语句;它是 sqlcmd 和 osql 实用程序以及 SQL Server Management Studio 代码编辑器可识别的命令。
  • ADF 中的独立 ScriptActivities?我的脚本中有 134 条 GO 语句。也许它们并不都是必不可少的
  • 该脚本是否存储在变量中?还是任何活动的输出? (因为你提到脚本是自动生成的)
  • 它来自一个生成表创建脚本的工具,并在每个语句之间放置 GO。所以我所做的是删除所有 GO 语句,我会看看它是否有效。我试图将依赖于那些现有表的东西放入新的 ScriptActivity 中,所以也许这会解决它(并且是正确的做法)。非常感谢所有回复。

标签: azure-sql-database azure-data-factory


【解决方案1】:

只是通过分享这个认为这可能会有所帮助。 您可以使用 Mapping 数据流管道来替换“GO”。 我尝试的是在源代码方面我添加了脚本(扩展名为 .sql 的文件,我假设你必须提供类似的东西)与上面的“GO”共享并且我使用 FILter 摆脱了所有GO 和在水槽上我确实写回了脚本(没有 GO 到 blob 。

现在我想使用 ADF 中的脚本活动自动执行命令。

为了执行查询,我们将使用一个 Lookup,它将读取我们在上一步中创建的文件,以及一个 for each 循环和一个脚本活动。

我的查找输出看起来像

所以当你设置脚本活动时,请像我一样传递动态值

HTH

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-11
    • 1970-01-01
    • 2021-12-17
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 2017-10-03
    相关资源
    最近更新 更多