取存储过程的参数列表

--取存储过程的参数列表
--1.方法一
ALTER PROCEDURE [dbo].[Proc_GetProcedureParams]
 @ProcName as varchar(255)--存储过程名称或函数名称
AS
/*
用途:取存储过程或函数的参数列表,如果是函数且返回表,则返回表的栏位信息
*/
--DECLARE @ProcName as varchar(255)
--SET @ProcName='Pro_New_A_NBO_Order'
select  'Parameter_name'= name,      
          'Type'= type_name(xusertype),      
          'Length'  = length,      
          'Prec'=   case   when   type_name(xtype)   =   'uniqueidentifier'   then   xprec      
                      else   OdbcPrec(xtype,length,xprec)   end,      
          'Scale'  = OdbcScale(xtype,xscale),  
          'Param_order'= colid,
          'IsOutput'=(case when colstat=4 then 1 else 0 end)
from    syscolumns
where   id = object_id(@ProcName)
--2.方法二
exec  sp_procedure_params_rowset  @procedure_name  =  'Pro_New_A_NBO_Order'

其他的一些想法:

1.这里的实现是使用syscolumns,是sql2000中的,sql2005中也有,但sys.columns表中并不存储参数信息。所以如果以后的版本不支持sql2000了,那么这种实现方式就不能用了。

2.是否可以使用XPath通过分析XML来取存储过程的参数?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值