簡単なストアドプロシージャがありますProc_My_SP
:
BEGIN
DECLARE @Results TABLE (Tid INT PRIMARY KEY);
INSERT @Results
EXEC Procedure2 [parameters];
SET @total 1;
END
SELECT @total
質問:を使用してProc_My_SP
、このストアドプロシージャを印刷したいProcedure2
-名前だけ
、およびその他Proc_My_SP
へのそのような呼び出しが複数含まれている場合はProcedure2
、Procedure3
それらを1つずつリストしたいと思います
ストアドプロシージャ内のすべてのストアドプロシージャ名を見つけて印刷します
編集済み
次の方法でストアドプロシージャのテキストを取得しようとしました
DECLARE @SPTEXT NVARCHAR(MAX)
SET @SPTEXT = (SELECT ROUTINE_DEFINITION
FROM INFORMATION_SCHEMA.ROUTINES
WHERE SPECIFIC_NAME = 'Proc_My_SP')
PRINT @SPTEXT
しかし、から@SPTEXT
、どのようにすべてのストアドプロシージャ名を見つけることができますか?
次のクエリを試すことができます。
SELECT NAME AS ObjectName
,schema_name(o.schema_id) AS SchemaName
,type
,o.type_desc
FROM sys.objects o
WHERE o.is_ms_shipped = 0
AND o.NAME LIKE '%Add%'
AND type = 'p'
ORDER BY o.NAME
または
SELECT NAME AS ObjectName
,schema_name(o.schema_id) AS SchemaName
,type
,o.type_desc
FROM sys.objects o
WHERE o.is_ms_shipped = 0
--AND o.NAME LIKE '%Add%'
AND OBJECT_DEFINITION(object_id) Like '%YourSearchTextHere%'
AND type = 'p'
ORDER BY o.NAME
最初のクエリは名前のみを検索し、2番目のクエリはSP内の任意のコンテンツを検索します。
編集
SELECT o.name, dependentObject.name
FROM sysdepends d
INNER JOIN sysobjects o on d.id = o.id
INNER JOIN sysobjects dependentObject on d.depid = dependentObject.id
WHERE o.xtype = 'P' AND dependentObject.xtype = 'P'
このクエリは、依存オブジェクト名を提供します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加