如何搜索 SQL 服务器数据库架构以查找具有指定参数集的 StoredProcs?

How can I search through a SQL Server database schema to find StoredProcs with a specified set of args?

我正在尝试推断哪个存储过程用于 return 一组特定的数据。

挑战在于数据库有数百个存储过程。有没有一种方法可以查询架构以找到所有具有命名参数的 StoredProcs,例如:

Unit
Member
BegDate
EndDate

...或者,除此之外,找到采用四个参数的 SP?

这会缩小范围并改善问题。

您想要查找的有关存储过程的所有信息,您可以在 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