我在SQL服务器的作业中有临时表,它将数据转储到另一个表中,一旦数据被转储到事务表,我就截断了临时表。
现在,如果作业失败然后数据是事务表,则会出现问题 回滚并将所有数据放在临时表中。因此,临时表已包含数据,如果我重新运行该作业,则它会将所有新数据与临时表中的现有数据合并。
我希望我的临时表在作业运行时清空。 我可以在这种情况下使用临时表吗?
答案 0 :(得分:0)
这是数据仓库项目中的常见场景,答案是合乎逻辑的而不是技术性的。您有两种方法可以处理这些情况:
如果您的数据很重要,请先检查暂存是否为空。如果表不为空,则表示上一个作业失败;在这种情况下,而不是插入到分段中执行插入更新操作,然后继续执行作业步骤。如果表是空的,则表示上一个作业成功,然后只插入新数据。
如果你能承受上次工作中的数据丢失,那就养成在运行包之前截断表的习惯。