2

特定のテーブルのデータを更新するすべてのストアド プロシージャを検索するために、何らかの方法でデータベースにクエリを実行することは可能ですか?

私は Cool Gen と呼ばれる前に、これとまったく同じことを行う古いシステムに取り組んでいましたが、現在、同様のものが必要です。

テーブルを使用するストアド プロシージャには興味がありません (非常に長いため、既にそのリストを持っています)。

4

2 に答える 2

5

これには、テーブル名 (コメントまたはより大きなオブジェクト名の一部である可能性があります) によっては誤検知が発生するか、他のテーブルを更新してからこのテーブルを参照するストアド プロシージャが発生する可能性があります。

SELECT OBJECT_NAME([object_id])
  FROM sys.sql_modules
  WHERE LOWER(definition) LIKE '%update%table_name%';

これは、依存ビューに依存するよりもはるかに信頼性の高い「最初のスイープ」だと思います。

SQL Searchなどのサード パーティ製ツールを検討することもできます。

于 2012-08-20T17:29:56.563 に答える
1

これを試して

Select OBJECT_NAME(object_id) from sys.sql_modules 
             where definition like '%UPDATE <table_name>%'
于 2012-08-20T17:29:55.133 に答える