jre*_*121 6 sql-server temp-tables table-locking
我有一个存储过程,首先检查临时表(#temp_table),如果它存在则删除它,使用该表,然后在完成时最终删除它.当用户做某事来触发它时,该SP被随机调用,并且有时SP可能会同时执行 - 或者有些重叠.
假设我的Exec1和Exec2都是相同的SP创建,更改和删除#temp表,并且它们在相隔毫秒内运行.
怎么了?在Exec1完成时,Exec1会锁定#temp_table和Exec2等待吗?在我的情况下,这显然是可取的.我不希望Exec1和2同时使用该表,也不希望Exec2失败,因为Exec1已经在使用该表.
[编辑]我应该将临时表转换为表变量吗?
在sql server中,如果你创建一个本地临时表,它是一个#符号sql server使用一些低分和后端的一些ID.假设您#Temp在临时数据库中创建名为sql server的临时表创建具有名称的#Temp_______10912098表,在单独连接中创建的每个临时表都将在名称末尾具有其ID.

这些是在不同连接中创建的所有临时表都具有名称#Temp但附加了一些下划线,并且unique idsql server用于区分它们.