Sql server 在另一个会话中执行代码时运行并行事务
是否有可能在某个特定时间点,但在不同/并行会话中运行更新?在提供的示例中,我希望在运行Sql server 在另一个会话中执行代码时运行并行事务,sql-server,tsql,transactions,sql-server-2016,Sql Server,Tsql,Transactions,Sql Server 2016,是否有可能在某个特定时间点,但在不同/并行会话中运行更新?在提供的示例中,我希望在运行WAITFOR时运行一些特定的更新。目前,我有一个WAITFOR块,以便有时间切换到另一个SSMS(或其他工具)窗口/选项卡,并在等待10秒时运行更新。从逻辑上讲,唯一需要做的事情就是在此时启动事务 EXEC dbo.p_sync_from_accounts_ext_test @enable_snapshot_isolation = 1
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;
是的,你能做到
方法1:(指向当前服务器的链接服务器)未启用DTC。从链接服务器调用SP
方法2:创建一个SQL Server作业,然后重试
请注意,在第一种情况下,update语句必须包含在SP中。在第二种情况下,update语句是可取的,但不是必需的。?否,存储过程、嵌套EXEC语句与该问题无关阅读答案,而不是问题<代码>来自OPENROWSET('SQLOLEDB','Server=(本地);TRUSTED_CONNECTION=YES;',…)我尝试使用
OPENROWSET
将UPDATE语句放在WaitforDelay
语句之前,结果与使用正常更新时相同。我知道信息不足,我会尽量提供更多关于我正试图解决的具体任务/问题的信息。简而言之,它与更新期间生成的rowversion
值有关,这些值与时态表的间隔列值组合在一起。@DmitrijKultasev,您是否能够解决您的问题?我无法使用环回链接服务器(DTC已禁用)。用job执行它肯定有帮助