2017-12-12 3 views
0

に削除し、読み取りを行うすべてのストアド・プロシージャ、更新を取得します。私のような基本的なロジックを持つストアドプロシージャの多くを持っているデータベース

どのようなストアドプロシージャがデータベースにヒットしたのかを確認するにはどうすればよいですか?

一部のストアドプロシージャでは、データベースにヒットした他のストアドプロシージャがあり、それ自体ではありません。

答えて

1

は、ストアドプロシージャは、次のスクリプトは、あなた

SELECT m.object_id,o.name,c.*,o.type,o.type_desc FROM sys.all_sql_modules AS m 
    INNER JOIN sys.objects AS o ON o.object_id=m.object_id 
    OUTER APPLY(

     SELECT 
      coalesce(object_schema_name(Referencing_ID)+'.','')+ --likely schema name 
      object_name(Referencing_ID)+ --definite entity name 
      coalesce('.'+col_name(referencing_ID,referencing_minor_id),'') 
       AS [referencing], 
      coalesce(Referenced_server_name+'.','')+ --possible server name if cross-server 
       coalesce(referenced_database_name+'.','')+ --possible database name if cross-database 
       coalesce(referenced_schema_name+'.','')+ --likely schema name 
       coalesce(referenced_entity_name,'') + --very likely entity name 
       coalesce('.'+col_name(referenced_ID,referenced_minor_id),'')AS [referenced] 
     FROM sys.sql_expression_dependencies 
     WHERE referencing_id =m.object_id 

    ) AS c 
    WHERE o.type='P' 
    AND c.referencing IS NULL 
+0

こんにちはノーラン、偉大なSQLクエリのために有用であるデータベースの参照データオブジェクトを?いたかを知りたいです!注意すべきは、データベースオブジェクトを参照しているSPの場合、最後にcluase条件は "c.referencing IS NOT NULL" – Eralper

関連する問題