消失的存储过程

Gab*_*abe 17 sql-server stored-procedures

所以,不确定发生了什么.但我有存储过程,它在SQL 2k中不断从我的数据库中消失.

我可以再次添加它,然后尝试从我的Web应用程序执行它,我得到一个例外,说存储过程无法找到.那么生病回到管理层再刷新它又消失了!?!

这是存储过程的配置:

set ANSI_NULLS OFF
set QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[USP_Equipment_Delete]
    @EquipmentID int
AS

DELETE FROM [dbo].[Equipment]
WHERE
    [EquipmentID] = @EquipmentID
Run Code Online (Sandbox Code Playgroud)

我的其他存储过程都没有消失.这是唯一的一个.我在那里很容易100.它们都使用相同的SQLHelper类.这个只是一直消失!!! ?? !!

任何帮助或建议表示赞赏!

非常感谢!

Pet*_*ter 34

你正在创建这个或另一个存储过程,并在你的代码结束时,也许在评论之后,你没有看到它,你有一滴这个过程.

使用以下方法查看您的数据库:

select syo.name
from syscomments syc
    join sysobjects syo on
        syo.id = syc.id
where syc.[text] like '%DROP PROC%'
Run Code Online (Sandbox Code Playgroud)

  • 很棒的修复.起初我不确定是什么.它告诉你什么PROC有drop语句.在我的情况下,先前的PROC没有关闭"GO",因此遇到我的IF EXISTS并丢弃下一个PROC. (2认同)

小智 13

我有同样的问题,我只是解决了它:

在脚本文件中,它缺少存储过程结束和下一个"IF EXIST THEN DROP"语句开头之间的"GO"语句.

所以发生的事情是drop语句被附加到脚本中它上面的任何存储过程的末尾.因此,当软件运行存储过程时,它将删除脚本中位于其下的任何存储过程.

现在对我们来说似乎很明显,但当时没有任何意义.我们发现它针对在现场遇到问题的客户数据库运行SQL分析器.