2017-11-05 12 views
0

私はsys_modulesでの定義とは異なる10個のストアドプロシージャを持っています。SQL Serverに格納されているprcedure定義がsys_modules.definitionと異なる

select 
    b.definition, a.name 
from 
    sysObjects a 
left outer join 
    sys.sys_modules b on b.id = a.object_id 
where 
    b.definition not like '%' + b.name + '%' 

なぜこのようなことが起こるか教えてもらえますか?

この問題に直面したのは2回目です。

答えて

1

これは、あなたがsp_renameを使用している場合に発生し、明示的に、ストアドプロシージャ、ファンクション、ビュー、またはをトリガ 定義 列に対応するオブジェクト名の名前を変更されません名前を変更in the documentation

アウトと呼ばれていますsys.sql_modulesカタログビューの。したがって、これらのオブジェクト型の名前を変更するためにsp_renameを使用しないように、 をお勧めします。その代わりに、 をドロップし、その新しい名前でオブジェクトを再作成します。

SSMSオブジェクトエクスプローラの名前変更機能は、実際にこの手順を呼び出すことに注意してください。

+0

ためROUTINE_DEFINITION列を取得し、それは私の問題を解決し、あなたに感謝 –

0

使用INFORMATION_SCHEMA.ROUTINESとストアドプロシージャ

関連する問題