【问题标题】:SQL Server 2012 Stored procedure is getting deleted automaticallySQL Server 2012 存储过程被自动删除
【发布时间】:2013-05-28 18:36:23
【问题描述】:

我遇到了一个奇怪的问题。我的存储过程之一被自动删除。 并不是我在错误的地方创建它。每次我创建 SP 并执行我的网页时,它都会显示。几分钟后,如果我再次执行该页面,它会显示一条错误消息,这是由于缺少 SP。 我一次又一次地尝试重新创建,并且每次都重复。我什至确实重新启动了机器(Windows Server 2008 R2),但没有用。在我的 Windows 8 机器上的 SQL Server 实例上,同样的过程很好。 我尝试了 SQL Server Profiler,但没有用。看不到任何丢弃过程。

另外由于一些奇怪的原因,我每秒钟都会收到很多请求到我的 SQL Server,它托管一个基于 dotnetnuke 的网站。有人可以帮我解决这个问题吗?

谢谢

【问题讨论】:

  • 尝试SELECT * FROM sys.sql_modules WHERE definition LIKE '%DROP%PROC%' 看看您是否在另一个过程中留下了 DROP 命令。您也可以尝试查看default trace
  • 谢谢马丁。我试过你的 sql,它没有返回任何信息。但是,尝试了管理工作室的标准报告以进行模式更改,这确实确认了 sp 被删除,但无法从它被删除的位置获取。另外,我很确定我没有在我的任何其他代码中包含任何 drop proc。

标签: stored-procedures sql-server-2012


【解决方案1】:

刚刚有其他开发人员提出了这个问题。原来有一个"DROP procedure"包含在另一个SP的末尾。 要在另一个数据库 SP 中查找此类隐藏语句,请运行类似

的语句
select OBJECT_NAME(sc.id), sc.* from syscomments sc where text like '%<name_of_SP>%'

&lt;name_of_SP&gt; 是被丢弃的 SP。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,问题是存储过程创建脚本和另一个存储过程的删除之间的数据库脚本中缺少 GO。 解决方案是在存储过程 1 create 和存储过程 2 drop 之间添加一个 GO。 我提到了Stored Procedure gets dropped randomly

    【讨论】:

      猜你喜欢
      • 2012-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-24
      • 2020-04-10
      • 2019-04-03
      • 1970-01-01
      相关资源
      最近更新 更多