我这个Sql Server数据库不知道是什么版本,不能自定义用户函数。不知道存储过程怎样返回SmallDate 型数据,我希望像用户自定义函数那样返回,请问如何写。

解决方案 »

  1.   


    --下边的例子能不能满足你?USE pubs
    GO
    CREATE PROCEDURE titles_sum @@TITLE varchar(40) = '%', @@SUM money OUTPUT
    AS
    SELECT 'Title Name' = title
    FROM titles 
    WHERE title LIKE @@TITLE 
    SELECT @@SUM = SUM(price)
    FROM titles
    WHERE title LIKE @@TITLE
    GO
      

  2.   

    create proc proc_t
        @dt smalldatetime output
    as
        set @dt=getdate()
        return
    go
    declare @a smalldatetime
    exec proc_t @a output
      

  3.   

    能使用 OutPut 传出量就可以了,别的都不要紧
      

  4.   

    我不希望执行 EXEC 存储过程名,而是希望在Sql里面调用函数一样调用存储过程,如下:
    调用函数的代码
    SELECT * FROM TT WHERE EffectDate<=DBO.PIFUN_GET_OriCreateDate(110)函数代码
    CREATE FUNCTION PIFUN_GET_OriCreateDate (@PIID INT)
    RETURNS SmallDateTime 
    AS  
    BEGIN 
    DECLARE @OriDate SmallDateTime
       DECLARE @strSn Varchar(100)
       SET @OriDate = '1999-1-1'

    SELECT @strSn = ISNULL(Preserve2, SN) , @OriDate=CreateDate FROM PI_PIS WHERE PIID=@PIID IF @strSn <> '' 
    BEGIN 
    IF( PATINDEX('%R_', @strSn) > 0 ) 
    SET @strSn = SUBSTRING(@strSn, 1, PATINDEX('%R_', @strSn)-1 )
       SELECT @OriDate=CreateDate FROM PI_PIS WHERE SN=@strSn
    END  return( @OriDate )END