如何搜索 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
我正在尝试推断哪个存储过程用于 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