TSQL使EXECUTE语句同步

47d*_*7d_ 2 sql t-sql sql-server exec synchronous

我有两个TSQL EXEC语句

EXECUTE (N'MyDynamicallyGeneratedStoredProcedure') -- return 0 on success
SELECT @errCode = @@ERROR ;

IF (@errCode = 0)
BEGIN
  EXEC 'A Sql Statement using ##temptable created from first', @returnValue
END
Run Code Online (Sandbox Code Playgroud)

如何使两个EXEC同步?; 现在第二个EXEC不等待第一个EXECUTE完成.我尝试发出WaitFor Delay,它等待,但第二个EXEC语句永远不会退回.

谢谢.

更新,这里有更多信息:

  1. 首先执行创建全局临时表,并从复杂的SELECT查询中填充它.
  2. 第二个EXEC是一个CLR存储过程,它根据最近创建和填充的Global Temp表中的变量生成动态SP.

现在第二个EXEC,抱怨没有找到Global Temp表.

更新2,发现问题(和它我!)

GBN(和其他人)在答案上都是空白.EXEC是同步的.问题?我对问题本身的理解..我曾经提到过

  1. EXECUTE(N'MyDynamicallyGeneratedStoredProcedure') - 成功返回0

应该是:

1(a)EXECUTE(N'CreateMyDynamicStoredProcedure') - 成功时返回0

1(b)EXECUTE(N'MyDynamicStoredProcedure') - 成功返回0

我错过了1(b)实际上在其他地方执行并且在步骤(2)之后执行.

(我应该去过生活!)

gbn*_*gbn 5

EXECUTE是同步的.第二个在第一个之后运行.总是.

你有多个连接运行相同的代码?您正在使用一个对所有连接都可见的全局临时表,因此它可能看起来像asyncc执行...