1. ホーム
  2. sql-server

[解決済み] すべてのストアドプロシージャを一覧表示するクエリ

2022-03-14 13:36:06

質問

SQL Serverデータベース内のすべてのストアドプロシージャの名前を返すことができるクエリとは?

システムストアドプロシージャを除外できるクエリであれば、さらに便利です。

解決方法は?

マイクが述べたように、最良の方法は information_schema . マスターデータベースでない限り、システムのストアドプロシージャは返されません。

SELECT * 
  FROM DatabaseName.INFORMATION_SCHEMA.ROUTINES
 WHERE ROUTINE_TYPE = 'PROCEDURE'

何らかの理由でマスターデータベースにシステム以外のストアドプロシージャがある場合、クエリを使用することができます(これは、ほとんどのシステムストアドプロシージャをフィルタリングします)。

SELECT * 
  FROM [master].INFORMATION_SCHEMA.ROUTINES
 WHERE ROUTINE_TYPE = 'PROCEDURE' 
   AND LEFT(ROUTINE_NAME, 3) NOT IN ('sp_', 'xp_', 'ms_')