mssql sqlserver 获取存储过程参数信息的方法分享


摘要:
下文讲述使用sqlserver系统对象获取存储过程参数的方法分享,如下所示:
实验环境:sqlserver 2008 R2


由于需要编写一个存储过程通用的参数化生成器,需要获取存储过程中的参数信息,下文将利用系统对象获取存储过程中的参数信息,如下所示:

实现思路:
通过查询系统对象” INFORMATION_SCHEMA.PARAMETERS”,输入响应的架构名称和存储过程名称获取相应的参数信息。

    SELECT PARAMETER_NAME as [参数名称],
     DATA_TYPE as [参数类型],
     ISNULL(CHARACTER_MAXIMUM_LENGTH, NUMERIC_PRECISION) as [长度],
     NUMERIC_SCALE  as [精度],
     PARAMETER_MODE as [参数类型(输入/输出)] 
    FROM INFORMATION_SCHEMA.PARAMETERS
    WHERE SPECIFIC_SCHEMA = '架构名称' AND  SPECIFIC_NAME = '存储过程名称'

-----例:获取pr_maomao存储过程的参数信息
       SELECT PARAMETER_NAME as [参数名称],
              DATA_TYPE as [参数类型],
              ISNULL(CHARACTER_MAXIMUM_LENGTH, NUMERIC_PRECISION) as [长度],
              NUMERIC_SCALE  as [精度],
              PARAMETER_MODE as [参数类型(输入/输出)] 
    FROM INFORMATION_SCHEMA.PARAMETERS
   WHERE SPECIFIC_SCHEMA = 'dbo' AND  SPECIFIC_NAME = 'pr_maomao'