当前位置: 首页 > 面试题库 >

TSQL使EXECUTE语句同步

柯乐池
2023-03-14
问题内容

我有两个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存储过程,它基于最近创建并填充的Global Temp表中的变量来生成动态SP。

现在,第二个EXEC抱怨找不到Global Temp表。

更新2,发现了问题(还有我!!)

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

  1. 执行(N’MyDynamicallyGeneratedStoredProcedure’)-成功返回0

应该是:

1(a)执行(N’CreateMyDynamicStoredProcedure’)-成功返回0

1(b) 执行(N’MyDynamicStoredProcedure’)-成功返回0

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

(我应该去生活!)


问题答案:

EXECUTE是同步的。第二个比赛在第一个比赛之后进行。总是。

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



 类似资料:
  • 问题内容: 我有两张桌子。表A和表B。 TableA包含一个varbinary(max)列-名为[BinaryA] TableB包含一个包含每个varbinary卷的列(名为“ Volume”,类型为“ Long”)。 为了选择我查询的所有卷 比,我想用它的体积更新tableB。 然后我写 我收到比 虽然我在运行时没有收到任何NULL 问题答案: 尝试使用此查询: 假设TableB和[VAULT]

  • 问题内容: from pandas import DataFrame import pyodbc 可以填充我的pandas DataFrame。但是我怎么得到 直接从 光标 ?这些信息是否完全存储在 游标 中? 问题答案: 您可以从游标描述中获取列:

  • 问题内容: 通过将用户的IP,失败的尝试次数和最后的尝试时间记录到名为的MySQL数据库表中,我有一种简单的登录系统保护机制。但是,当我尝试使用以下代码在数据库中插入新条目时,execute()函数将返回false并无法执行。 代码如下: 我是php和MySQL的新手,通过研究,我发现SQL语法显然需要在查询的VALUE部分的字段周围加上引号,例如: 但是我在这里发现它实际上使查询停止工作(仍然尝

  • 问题内容: 我有一个SP,这给了我很多困难。 sp获得两个参数@madeByUserId和@reportedByUserId。我想要类似的东西: 基本上,我想在where子句中提出一个案例,以包含另一个基于@reportedByUserId的null / not null状态的过滤条件 那可能吗? 非常感谢Radu 问题答案: 尝试:

  • 问题内容: 我有一个名为 stmt的* Statement 对象,一个Connection对象 conn 。 *** 但这总是产生 假的 。如果上述查询成功执行,我想返回 true, 如果查询执行失败,我想返回 false 。如何使用 execute() 方法获得该结果。 问题答案: 如何使用execute()方法获得该结果。 你不能 只有结果为时,它才会返回。如果您的插入有问题,该方法将引发异常

  • 问题内容: $pageMin = (($page * 10)-10); 似乎占位符不适用于LIMIT … 当我将pageMin连接起来时,例如: 甚至 使用占位符,它不会返回任何结果,为什么? 谢谢你的帮忙。 问题答案: 当您将参数数组传递给它们时,它们将被视为字符串,并且limit是一个int值。只需将bindValue与int类型一起使用即可。