我现在存储过程中有一个值是通过几行代码得出,但这几行代码重复出现,我想将这几行代码放到一个单独的存储过程或函数什么的进行运算,然后,再调用这个子存储过程(或函数),但不知如何实现。
如果那位兄台知道,赐点代码,在下感激不禁!

解决方案 »

  1.   

    Create procedure test1
    As
     ...Create procedure test2
    As
      ...
      Exec test1
      ...
      

  2.   

    马可:
    我想让子存储过程(test1)中计算得出的一个值返回给上级存储过程(test2),在test2中用这个值,如何得到?下面是我得代码:
    CREATE PROCEDURE aaaUP_TEST AS 
    SET NOCOUNT ON--------------------
    declare @sqlcur varchar(7000)
    declare cur_rs cursor local for select max(right(name,len(name)-9)) as maxno  from sysobjects where name like 'Temptable%'
    open cur_rs
    fetch cur_rs into @sqlcurwhile @sqlcur is null begin
    select @sqlcur=0
    endselect @sqlcur=@sqlcur+1
    -------------------------------declare @sqltab varchar(6000)
    select @sqltab='
    CREATE TABLE  temptable' + @sqlcur +'
    (
    [日期] [smalldatetime] NULL,
    [机械番号] [Varchar](30) NULL,
    [数量] [decimal] NULL
    )'
    --print @sqltab
    exec (@sqltab)我想让两条横线之间的代码通过子存储过程实现,并将◎sqlcur返回,如何做?
      

  3.   

    create procedure test1
    As
    --------------------
    declare @sqlcur varchar(7000)
    declare cur_rs cursor local for select max(right(name,len(name)-9)) as maxno  from sysobjects where name like 'Temptable%'
    open cur_rs
    fetch cur_rs into @sqlcurwhile @sqlcur is null begin
    select @sqlcur=0
    endselect @sqlcur=@sqlcur+1
    -------------------------------
    Return @sqlcur
    gocreate procedure test2
    As  ...
      Exec @a = test1
      select @a
      ...
      

  4.   

    谢谢!我查了一下,还有一种方法:
    exec test1 @sqlcur output
    print @sqlcur