例如我有个存储过程 
CREATE PROC usp_psName
@int id
AS
SELECT 1 AS N1,'2' AS N2,getdate() N3 FROM TABLE
我要查的结果是 N1 INT
 N2 VARCHAR
 N3 DATETIME 

解决方案 »

  1.   


    CREATE PROC usp_psName
    @int id
    AS
    select 'N1', 'INT' union all
    select 'N2', 'VARCHAR' union all
    select 'N3', 'DATETIME'
      

  2.   

    = =应该是能实现的我看一些ORM框架就能做到
      

  3.   

    --查询所有存储过程
    select Pr_Name  as [存储过程], [参数]=stuff((select ','+[Parameter] 
        from (
            select Pr.Name as Pr_Name,parameter.name +' ' +Type.Name + ' ('+convert(varchar(32),parameter.max_length)+')' as Parameter
            from sys.procedures Pr left join 
            sys.parameters parameter  on Pr.object_id = parameter.object_id
            inner join sys.types Type on parameter.system_type_id = Type.system_type_id
            where type = 'P' 
        ) t where Pr_Name=tb.Pr_Name for xml path('')), 1, 1, '')
    from (
        select Pr.Name as Pr_Name,parameter.name +' ' +Type.Name + ' ('+convert(varchar(32),parameter.max_length)+')' as Parameter
        from sys.procedures Pr left join 
        sys.parameters parameter  on Pr.object_id = parameter.object_id
        inner join sys.types Type on parameter.system_type_id = Type.system_type_id
        where type = 'P' 
    )tb
    where Pr_Name not like 'sp_%' --and Pr_Name not like 'dt%'
    group by Pr_Name
    order by Pr_Name
      

  4.   

    你的存储过程太简单了
    CREATE PROC usp_psName
    @int id
    AS
    SELECT 1 AS N1,'2' AS N2,getdate() N3 FROM TABLE这样的存储过程恐怕不多.功能稍强一点的,就会比这复杂得多,一般的存储过程都得几十行,多条查询语句,还有子查询,连接什么的,关键是没有什么规律,没法用简单逻辑判断的方法去获取你想要的东西.