【发布时间】:2009-04-12 16:03:02
【问题描述】:
我有两个 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 抱怨找不到全局临时表。
更新 2,发现问题(还有我!!)
GBN(和其他人)的答案是空白的。执行是同步的。问题?我对问题本身的理解..我提到过
- EXECUTE (N'MyDynamicallyGeneratedStoredProcedure') -- 成功返回 0
应该是:
1(a) EXECUTE (N'CreateMyDynamicStoredProcedure') -- 成功返回 0
1(b) EXECUTE (N'MyDynamicStoredProcedure') -- 成功返回 0
我错过了 1(b) 实际上是在其他地方和步骤 (2) 之后执行的。
(我应该去活下去!!)
【问题讨论】:
-
我怀疑您还有其他问题。 EXECUTE 是同步的
-
您的意思是“顺序”吗?命令将是顺序的...
-
同意米奇。能否请您提供更多信息?
-
@Dems:我的意思是顺序的。
-
@47d_:“基于最近创建和填充的全局临时表中的变量”是什么意思?
标签: sql sql-server tsql exec synchronous