sql - TSQL使EXECUTE语句同步

标签 sql sql-server t-sql 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

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

谢谢。

更新,以下是更多信息:

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

现在第二个 EXEC 提示找不到全局临时表。

更新2,发现问题(就是我!!)

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

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

应该是:

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

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

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

(我应该去谋生!!)

最佳答案

EXECUTE 是同步的。第二个在第一个之后运行。永远。

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

关于sql - TSQL使EXECUTE语句同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/741970/

相关文章:

sql - PostgreSQL - 条件排序

sql-server - MONTHS_BETWEEN 函数无法识别

mysql - 如何通过给每列赋予不同的权重来对结果进行排序?

sql - 如何使用存储过程选择 xml 元素属性?

php - 在 SQL 查询中匹配绑定(bind)参数

php - MariaDB - 发票编号 - 每年返回0

SQLite:%midstring% 和 stringstart% 在多个列上搜索,但希望始终首先返回成功的 stringstart% 匹配项

c# - 如何为 BULK INSERT 命令准备数据

sql-server - T-SQL 组跳过并采取

sql - 当我执行 UPDATE 时出现 INSERT 错误?