Hop*_*ppe 7 sql-server temp-tables sql-server-2014
我有一个存储过程创建临时表.它只需要这个存储过程的范围,而不是其他地方.
当我使用临时表列出这个时,我总是检查临时表是否存在,如果存在则删除它,然后在存储过程中创建它.即:
IF OBJECT_ID('tempdb..#task_role_order') IS NOT NULL
DROP TABLE #task_role_order
CREATE TABLE #task_role_order(...)
Run Code Online (Sandbox Code Playgroud)
大多数情况下,除了在创建临时表之前,最好先删除临时表吗?
如果需要更多上下文,我有一个.NET Web API后端,它调用数据库中的存储过程.我相信当SQL Server会话结束时,SQL Server会丢弃临时表.但我不知道.NET每次查询数据库时是打开一个新的SQL Server会话,还是每个应用程序生命周期只打开一次,等等.
我读过这个类似的问题,但认为它略有不同.
通常,只要您不再需要资源,就可以将资源释放出来.所以我在存储过程的末尾添加DROP TABLE.
只要连接存在,临时表就会存在.通常,应用程序使用连接池(可配置),并且在调用Connection.Close时连接不会关闭.在连接重新使用之前,客户端执行特殊的存储过程(sp_reset_connection),它执行所有清理任务.所以临时表在任何情况下都会被删除,但有时会延迟一段时间.
| 归档时间: |
|
| 查看次数: |
7692 次 |
| 最近记录: |