更新程序并执行后,我收到错误。
对象'PROCEDURE NAME'的定义已更改 因为它是编译的。
是否有针对此错误的修复程序?
答案 0 :(得分:2)
您是在一个窗口中更改过程并执行它吗? 另一?
是的,情况确实如此。我在SSMS中更新它并执行一个 调用程序的单独应用程序
您需要结束编辑该过程的会话。这些更改仅在编辑会话中可见,直到提交为止。
答案 1 :(得分:0)
我刚刚遇到了另一种可能发生这种情况的情况,我想在这里提到它,以防它对其他人有帮助。
我有一个“更新后”触发器,其中正在更新datetime [DateModified]列。我不希望此触发器在同一张表上触发其他触发器,所以我在触发器内执行此操作...
disable trigger all on [MyTable];
我当然忽略的是,这也禁用了当前正在运行的触发器,并导致了错误...
The definition of object 'MyTrigger' has changed since it was compiled.
解决方案是显式列出我需要禁用的触发器,而不是使用“全部”。