我有一个创建临时表的客户端应用程序,在临时表中执行批量插入,然后在删除之前使用该表执行一些 SQL。
伪代码:
open connection
begin transaction
CREATE TABLE #Temp ([Id] int NOT NULL)
bulk insert 500 rows into #Temp
UPDATE [OtherTable] SET [Status]=0 WHERE [Id] IN (SELECT [Id] FROM #Temp) AND [Group]=1
DELETE FROM #Temp WHERE [Id] IN (SELECT [Id] FROM [OtherTable] WHERE [Group]=1)
INSERT INTO [OtherTable] ([Group], [Id]) SELECT 1 as [Group], [DocIden] FROM #Temp
DROP TABLE #Temp
COMMIT TRANSACTION
CLOSE CONNECTION
这失败并在 DROP 语句上出现错误:
无法删除表“#Temp”,因为它不存在或您没有权限。
我无法想象如果没有其他事情首先发生这种故障会如何发生,但我没有看到在此之前发生任何其他故障。
有什么我遗漏的东西可能导致这种情况发生吗?