【发布时间】:2018-06-14 22:27:53
【问题描述】:
我在我的 sql 服务器中设置了一个表,用于跟踪已更改的库存项目(在另一个数据库中)。该表由几个不同的触发器提供。每 15 分钟,一个计划任务运行一个批处理文件,该批处理文件执行许多不同的查询,这些查询发送有关此表中标记的项目的更新,以更新多个电子商务网站。批处理文件中的最后一个查询重置标志。
您可以想象,如果在此批处理文件运行时标记了某个项目,则可能会丢失更改。我通过每 24 小时重播最近 25 小时的更新来解决这个问题,以防万一发生这种情况。它有效,但 IMO 有点笨拙。
我想要做的是延迟对该表的任何写入,直到我的脚本完成,并重置脚本启动时标记的所有行上的标志。然后让所有这些延迟写入发生。
我已经考虑过使用表提示 (TABLOCK) 来执行此操作,但这似乎仅限于一个查询——除非我误解了我所读到的内容,这当然是可能的。我有几个连续运行。 TIA。
【问题讨论】:
标签: sql sql-server sql-server-2012