我有两个 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
如何使两个 EXEC 同步?; 现在第二个 EXEC 不会等待第一个 EXECUTE 完成。我尝试发出 WaitFor 延迟,它等待但第二个 EXEC 语句永远不会返回。
谢谢。
更新,这里有更多信息:
- 首先执行创建一个全局临时表并从一个复杂的 SELECT 查询中填充它。
- 第二个 EXEC 是一个 CLR 存储过程,它根据最近创建和填充的全局临时表中的变量生成动态 SP。
现在第二个 EXEC 抱怨找不到 Global Temp 表。
更新 2,发现问题(还有我!!)
GBN(和其他人)对答案持空白。执行是同步的。问题?我对问题本身的理解..我提到过
- EXECUTE (N'MyDynamicallyGeneratedStoredProcedure') -- 成功返回 0
它应该是:
1(a) EXECUTE (N'CreateMyDynamicStoredProcedure') -- 成功返回 0
1(b) EXECUTE (N'MyDynamicStoredProcedure') -- 成功返回 0
我错过了 1(b) 实际上是在其他地方和步骤 (2) 之后执行的。
(我应该去活下去!!)