如果多个用户使用我的应用程序,我的临时表在mssql中会发生什么?
问题描述:
我正在运行一个sql查询,其中涉及创建一个临时表来做一些处理。我的问题是会发生什么事我临时SQL表,如果让一个使用我app.I说10K用户正在创建和将数据插入到表如下如果多个用户使用我的应用程序,我的临时表在mssql中会发生什么?
BEGIN TRANSACTION;
BEGIN TRY
IF OBJECT_ID('tempdb..#Temp') IS NOT NULL BEGIN DROP TABLE #Temp; END
Select * Into #Temp From [Booking] where purchaseorder='123'
-- Do some processing on temp table and
-- save data into some other table.
IF OBJECT_ID('tempdb..#Temp') IS NOT NULL BEGIN DROP TABLE #Temp; END
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION;
END CATCH;
IF @@TRANCOUNT > 0
COMMIT TRANSACTION;
GO
它可以是我的临时会得到一些下降其他用户,而不是创建它的用户? 我的应用程序是在asp.net
感谢
答
表以#开始是只在查询的特定范围活跃,多个用户运行相同的查询处于不同的范围,因此不会相互影响。 ##临时表是全球性的,其他会话可能会影响它们。
答
没有,本地临时表(那些单#
开始)中是唯一的连接。没有办法让另一个连接删除你的表。
事实上,你写防御性代码试图下降事先这样的表是相当奇怪的。
对于大多数简单的查询,表变量可能会更好(因为这些都更容易理解范围)