我有一个存储过程,它首先检查临时表(#temp_table),如果它存在则删除它,使用该表,然后在完成后最终将其删除。当用户执行某些操作来触发它时,该 SP 会被随机调用,并且有时 SP 可能会同时执行 - 或有一些重叠。
假设我有同一个 SP 的 Exec1 和 Exec2 创建、更改和删除 #temp 表,并且它们彼此运行在几毫秒内。
发生什么了?Exec1 会锁定 #temp_table 并且 Exec2 会在 Exec1 完成时等待吗?在我的情况下,这显然是可取的。我不希望 Exec1 和 2 同时使用该表,也不希望 Exec2 失败,因为 Exec1 已经在使用该表。
[编辑] 我应该将我的临时表转换为表变量吗?