SQL Server Management Studio を通じて SQL Server 2008 を使用しています
私はこれを前に見たことがありません:
多くの場合、データベースをリファクタリングするときに、次のように使用して、既存のプロシージャ内の列、テーブル、およびその他のプロシージャへの参照を見つけます。
select *
from sys.sql_modules
where [definition] like '%SomethingImLookingFor%'
これは特別なことではありません。多くのデータベース ヘッドが以前に実行したことがあると思います。
ただし、結果には、作成時に完全に事故であったように見える手順が含まれていることに気付きました (実際に作成された場合)。データベースには という名前のプロシージャがありますChatObject_Remove
。これは、 という用語を参照するものを探していたため、クエリに表示されました%Remove%
。しかし、私はまた、と呼ばれるゴーストプロシージャを見ますzzChatObject_Remove
SSMS でデータベースを展開すると、 がProgrammability -> Stored Procedures
表示されますが、 は表示さChatObject_Remove
れませんzzChatObject_Remove
。
このグループを更新してみましたが、ゴーストはまだ表示されません。
ステートメントを使用してみました
drop procedure [dbo].[zzChatObject_Remove]
存在しないか、権限がないというエラーが返されました。
というプロシージャを作成しようとしましたが、それを実行できました (ただし、 の定義を持つzzChatObject_Remove
2 つのオブジェクトがありました)。次に、許可された新しいものを削除しましたが、予想どおり、ゴーストはまだモジュールテーブルにあり、触れることができません。sql_modules
create procedure zzChatObject_Remove ...
誰もこれを見たことがありますか?これは他にどこにありますか?それは害を及ぼす可能性がありますか?sys.sql_modules
テーブル内のこの一見孤立したプロシージャを取り除くにはどうすればよいですか?
ご意見をお寄せいただきありがとうございます。
運が良かっただけに、ハロウィーンの時期に幽霊を見ました...