gpt4 book ai didi

sql-server - 临时表的 DROP TABLE 失败

转载 作者:行者123 更新时间:2023-12-02 21:34:03 24 4
gpt4 key购买 nike

我有一个客户端应用程序,它创建一个临时表,对临时表执行批量插入,然后在删除该表之前使用该表执行一些 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”,因为它不存在或您没有权限。

我无法想象如果没有先发生其他事情,如何会发生此故障,但我没有看到在此之前发生任何其他故障。

我是否遗漏了什么可能导致这种情况发生?

最佳答案

中间的 session 中可能发生了一些事情?

尝试在删除表之前检查该表是否存在:

IF object_id('tempdb..#Temp') is not null
BEGIN
DROP TABLE #Temp
END

关于sql-server - 临时表的 DROP TABLE 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2642111/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com