gpt4 book ai didi

sql-server - 除了在创建临时表之前,还是在使用后删除临时表,这是最佳实践吗?

转载 作者:行者123 更新时间:2023-12-04 11:50:57 24 4
gpt4 key购买 nike

我有一个创建临时表的存储过程。仅在此存储的过程的范围内需要它,而在其他地方则不需要。

当我使用临时表列出时,我总是检查临时表是否存在,如果存在,则将其删除,然后在存储过程中创建它。 IE。:

IF OBJECT_ID('tempdb..#task_role_order') IS NOT NULL    
DROP TABLE #task_role_order
CREATE TABLE #task_role_order(...)

在大多数情况下,除了在创建临时表之前,还是删除临时表后,这是最佳实践吗?

如果需要更多上下文,则可以使用.NET Web API后端,该后端调用数据库中存储的proc。我相信当SQL Server session 结束时,SQL Server会删除临时表。但是我不知道.NET是在每次查询数据库时打开一个新的SQL Server session ,还是在每个应用程序生命周期中仅打开一次,等等。

我已经阅读了 similar question,但认为它略有不同。

最佳答案

通常,只要您不再需要资源,就可以释放资源。因此,我将在存储过程的末尾添加DROP TABLE。

只要连接存在,临时表就存在。通常,应用程序使用连接池(可配置),并且在调用Connection.Close时连接不会关闭。在重新使用连接之前,客户端将执行特殊的存储过程(sp_reset_connection),该过程执行所有清理任务。因此,在任何情况下,临时表都将被删除,但有时会有些延迟。

关于sql-server - 除了在创建临时表之前,还是在使用后删除临时表,这是最佳实践吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28905384/

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