1

从 SQL Server 2012 数据库中删除旧表和存储过程时,我遇到了一个奇怪的问题。整个想法是首先删除旧表(100+),然后重新创建所有存储过程。因此,如果任何存储过程包含已删除表的引用,则不会创建它。但令人惊讶的是,即使表不存在,所有的存储过程都在创建!

我尝试过重新启动 SQL Server 实例、刷新本地架构、尝试过WITH RECOMPILE选项以及一些DBCC命令,但没有任何效果。

谁能告诉我如何解决这个问题?

4

1 回答 1

2

没有表存在,仍然可以创建存储过程,只是当你运行它们时,会抛出异常。因此,您不能依靠表来决定是否创建存储过程。

您可以做的是,在您删除所有那些 100+ 旧表后,您可以检查您的存储过程依赖关系,您可以使用 SSMS GUI,只需右键单击存储过程,查看依赖关系,然后选择查看 [Objects on which [. .] 依赖],那么你就可以知道哪个存储过程有未解析的实体,然后你可以删除存储过程。

于 2013-04-03T23:24:36.397 回答