【发布时间】:2020-09-30 18:55:14
【问题描述】:
是否有可能在某个特定时间点运行更新,但在不同/并行会话中?在提供的示例中,我希望在运行WAITFOR 时运行一些特定的更新。目前我有这个WAITFOR 块有时间切换到另一个 SSMS(或其他工具)窗口/选项卡并在等待 10 秒时运行更新。从逻辑上讲,唯一需要做的事情就是在这个时间点开始交易。
EXEC dbo.p_sync_from_accounts_ext_test @enable_snapshot_isolation = 1
, @run_update_flag = NULL
, @run_wait_for_10 = NULL
, @acc = @acc;
WAITFOR DELAY '00:00:10'; -- Execute update in parallel transaction
-- table update should be performed in that parallel transaction
EXEC dbo.p_finish_sync_attributes;
【问题讨论】:
-
不,存储过程,嵌套的EXEC语句与那个问题无关
-
阅读答案,而不是问题。
FROM OPENROWSET ('SQLOLEDB','Server=(local);TRUSTED_CONNECTION=YES;', ...) -
我尝试将使用
OPENROWSET的UPDATE 语句放在WAITFOR DELAY语句之前,结果与我使用普通UPDATE 相同。我了解缺少信息,我将尝试提供有关我要解决的确切任务/问题的更多信息。简而言之,它与rowversion值有关,在更新期间结合时态表的间隔列值生成。 -
@DmitrijKultasev,您的问题解决了吗?
标签: sql-server tsql transactions sql-server-2016