0

特定のデータ セットを返すためにどの Stored Proc が使用されているかを推測しようとしています。

問題は、データベースに何百もの Stored Proc があることです。たとえば、次のように、スキーマにクエリを実行して、名前が付けられたパラメーターを持つすべての StoredProcs を見つける方法はありますか。

Unit
Member
BegDate
EndDate

...または、それを除けば、4 つの引数を取る SP を見つけますか?

それは物事を少し絞り込み、問題を改善するでしょう.

4

1 に答える 1

1

ストアド プロシージャについて知りたい情報はすべて、INFORMATION_SCHEMA.PARAMETERS、SYS.PARAMATERS、SYS.PROCEDURES、SYS.SQL_MODULES などのテーブルで見つけることができます。

この問題は、INFORMATION_SCHEMA.PARAMETERS の PARAMETER_NAME をクエリすることで解決できます。

例えば

; WITH T AS (SELECT [specific_name] FROM information_schema.parameters WHERE [parameter_name] = '@Unit'
UNION ALL
SELECT [specific_name] FROM information_schema.parameters WHERE [parameter_name] = '@Member'
UNION ALL
SELECT [specific_name] FROM information_schema.parameters WHERE [parameter_name] = '@BegDate'
UNION ALL
SELECT [specific_name] FROM information_schema.parameters WHERE [parameter_name] = '@EndDate')
SELECT [specific_name] 
FROM T
GROUP BY [specific_name] HAVING COUNT(*) = 4

または、4 つのパラメーターを持つすべてのプロシージャーを検索するには、次のようにします。

SELECT [specific_name] FROM information_schema.parameters GROUP BY [specific_name] HAVING COUNT(*) = 4
于 2015-12-10T22:54:57.897 に答える