sql-server – 除了在创建临时表之前,最好在使用后删除临时表吗?

前端之家收集整理的这篇文章主要介绍了sql-server – 除了在创建临时表之前,最好在使用后删除临时表吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个存储过程创建临时表.它只需要这个存储过程的范围,而不是其他地方.

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

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

大多数情况下,除了在创建临时表之前,最好在完成临时表时删除临时表吗?

如果需要更多上下文,我有一个.NET Web API后端,它调用数据库中的存储过程.我相信sql Server会话结束时sql Server会丢弃临时表.但我不知道.NET每次查询数据库时是打开一个新的sql Server会话,还是每个应用程序生命周期只打开一次,等等.

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

解决方法

通常,只要您不再需要资源,就可以将资源释放出来.所以我在存储过程结束时添加DROP TABLE.

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

原文链接:https://www.f2er.com/mssql/77024.html

猜你在找的MsSQL相关文章