我想截断配置表中 isTrun 列的值为 True 的表。 这些脚本需要在复制事件的 Sink 预复制脚本中运行。
数据流如下:
查找事件查找配置表。然后进入 foreach 循环并复制查找到的表。在复制之前,需要截断配置表中 isTrun 列值为 True 的表。
我面临的问题是我所有的尝试都有无效的语法。
我已经尝试过以下脚本:
if(@item().isTrun = 1, TRUNCATE TABLE [@{item().targetSchema}].[@{item().targetTable}], '1=1')
这个脚本:
TRUNCATE TABLE @{if(equals(item().isTrun, 'True'),'[@{item().targetSchema.item()}].[@{targetTable}]',' ')}
提前致谢!
最佳答案
将此表达式用于预复制脚本:
@{if(
equals(item().isTrun,1),
concat( 'truncate table ', item().doel_schema, '.', item().doel_tabel ) ,'')}
它检查此循环的 isTrun 是否等于 1,如果是,则将 truncate 命令与表名连接起来。如果没有,前脚本将是一个空字符串,不执行任何操作。
关于sql - Synapse/ADF - 如果预复制脚本中的动态配置列为 True,如何截断表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75852417/