当前位置:  开发笔记 > 后端 > 正文

SQL Server临时表和连接池

如何解决《SQLServer临时表和连接池》经验,为你挑选了2个好方法。

我有一个针对SQL Server运行的多用户ASP.NET应用程序,并希望StoredProcA创建一个#temptable临时表 - 而不是表变量 - 来插入一些数据,然后分支到StoredProcB,StoredProcC和StoredProcD来操作数据每个业务规则都有#temptable.

与SQL交谈时,Web应用程序使用连接池.我是否会为每次调用StoredProcA获得一个新的#temptable临时区域?或者连接池是否会在用户之间共享#temptable?



1> Mark Bracket..:

连接池(使用任何现代版本的SQL Server)将sp_reset_connection在重用连接时调用.除其他外,此存储过程会删除连接所拥有的任何临时表.



2> Kevin Crumle..:

##表将由所有用户共享.我认为这不是你的意图.

单个#temp表对于调用堆栈下的所有存储过程是可见的,但在该范围之外不可见.如果您可以使用Proc A呼叫B,C和D,那么您应该没问题.

编辑:我现在应该正在处理的报告程序非常类似.:)我在应用程序调用的根proc中创建一个临时表(#results),然后在一系列子程序中执行一些复杂的数据修改,1)抽象重复代码,以及2)保持root程序不运行到500多行.

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有