检查存储过程是否具有带SQL脚本的指定参数

时间:2011-12-28 15:44:21

标签: sql sql-server tsql

是否有机会找到具有指定参数x的所有存储过程?

我相信(伪代码):

select * from master where objectType = 'storedprocedure' and parameter='x'

存储过程的元信息存储在哪里(在主数据库中)?

我必须使用Microsoft SQL Server。

感谢您的帮助。

亲切的问候,帕特里克

2 个答案:

答案 0 :(得分:7)

您可以使用的相关INFORMATION_SCHEMA视图是PARAMETERS。此查询将列出具有此类参数的所有存储过程:

SELECT DISTINCT p.SPECIFIC_NAME
FROM INFORMATION_SCHEMA.PARAMETERS p
WHERE p.PARAMETER_NAME = '@x'

答案 1 :(得分:4)

对于sql server 2005+,如果需要2000的脚本 - 请在问题中注明

   IF EXISTS (
        SELECT *
        FROM sys.procedures pr
        JOIN sys.parameters pa
            ON pr.object_id = pa.object_id
        WHERE 
            pr.object_id = object_ID('dbo.ProcName')
        AND pa.name = '@paramName'
    )
        PRINT 'Exists!'