0

我试图推断哪个存储过程用于返回一组特定的数据。

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

Unit
Member
BegDate
EndDate

...或者,除此之外,找到需要四个参数的 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 回答