You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

存储过程依赖对象删除重建后,如何无需重定义重新编译?

无需重新创建存储过程即可恢复其有效性的方法

当然存在无需修改或重新创建存储过程定义的修复方法,以下是两种常用方案:

1. 使用系统存储过程 sp_recompile

执行以下命令,标记目标存储过程需要重新编译:

EXEC sp_recompile 'tst_Proc';

该操作会让SQL Server在下次执行存储过程时自动重新编译它,更新其依赖对象的元数据,从而恢复有效状态。

2. 执行存储过程时添加 WITH RECOMPILE 选项

直接执行存储过程并强制本次执行时重新编译:

EXEC tst_Proc WITH RECOMPILE;

这次执行完成后,存储过程的依赖信息会被更新,后续正常执行时就会使用新的编译计划,存储过程也会回到有效状态。

额外说明:实际上,当你第一次执行处于无效状态的存储过程时,SQL Server会自动尝试重新编译它,但如果希望主动触发修复而不依赖首次执行,上述两种方法更可控。

内容的提问来源于stack exchange,提问作者sha12

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 21:05:21