Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在另一个会话中执行代码时运行并行事务_Sql Server_Tsql_Transactions_Sql Server 2016 - Fatal编程技术网

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执行它肯定有帮助