1

SQL Server 2012 データベースから古いテーブルとストアド プロシージャを削除しているときに、奇妙な問題に直面しました。全体的なアイデアは、最初に古いテーブル (100 以上) を削除してから、すべてのストアド プロシージャを再作成することでした。したがって、ストアド プロシージャに削除されたテーブルの参照が含まれている場合、単純に作成されません。しかし驚くべきことに、テーブルが存在しないにもかかわらず、すべてのストアド プロシージャが作成されています。

WITH RECOMPILESQL Server インスタンスを再起動し、ローカル スキーマを更新し、オプションといくつかのDBCCコマンドを試しましたが、何も機能しません。

誰でも問題を解決する方法を教えてもらえますか?

4

1 に答える 1

2

テーブルが存在しなくてもストアド プロシージャを作成できますが、それらを実行すると例外がスローされます。そのため、ストアド プロシージャを作成するかどうかをテーブルに依存して決定することはできません。

できることは、これらの 100 以上の古いテーブルをすべて削除した後、ストアド プロシージャの依存関係を確認し、SSMS GUI を使用して、ストアド プロシージャを右クリックし、依存関係を表示して、[View [Objects on which [. .] 依存] の場合、どのストアド プロシージャに未解決のエンティティがあるかがわかるので、そのストアド プロシージャを削除できます。

于 2013-04-03T23:24:36.397 に答える