SQL Server使用旧版本的代码调试存储过程



我在SQL Server中有一个存储过程,我正在尝试使用SSMS对其进行调试。这是我的流程:

  1. 更改存储过程并执行
  2. 在调试模式下运行存储过程以观察更改的效果-这将在SSMS中打开一个新的选项卡进行调试
  3. 完成调试会话,更改存储过程并重新执行

看起来,如果我不关闭在步骤2中创建的选项卡,那么调试器将使用存储过程的早期版本。这是SSMS中调试的已知问题吗?如果是,是否有解决方法或修复方法?

解决方案:

使用"DBCC FREEPROCCACHE"清除过程缓存。

例如,释放过程缓存会导致重新编译一条特殊的SQL语句,而不是从缓存中重用。如果通过SQL事件探查器进行观察,则可以观察DBCC FREEPROCCACHE开始工作时发生的Cache Remove事件。DBCC FREEPROCCACHE将使优化器缓存在内存中的所有存储过程计划无效,并强制SQL Server在下次运行这些过程时编译新的计划。

--所有信用给->Dave Pinal缓存否则你可以

Drop proc stpMyModifiedProcedure

创建过程stpMyModifiedProcedure

这也会起作用。。。更改将更改存储过程,但不会更改缓存中的存储过程。。。丢弃将更新缓存。

最新更新