存储过程传回值有三种形式区别:return,output,recordset,请大家帮忙详细解释!!

解决方案 »

  1.   


    CREATE PROCEDURE usp_Test
    @TableNum int OUTPUT,
    @TableLastCreateTime datetime OUTPUT,
    @TableLastModifyTime datetime OUTPUT
    AS
    BEGIN
    SELECT
    TableName = name,
    CreateDate = create_date
    FROM sys.tables
    ORDER BY TableName SELECT
    @TableNum = COUNT(*),
    @TableLastCreateTime = MAX(create_date),
    @TableLastModifyTime = MAX(modify_date)
    FROM sys.tables RETURN 12345
    END
    GODECLARE @ReturnValue int, @TableNum int, @TableLastCreateTime datetime, @TableLastModifyTime datetime
    EXEC @ReturnValue = usp_Test
    @TableNum OUTPUT,
    @TableLastCreateTime OUTPUT,
    @TableLastModifyTime OUTPUT
    SELECT @ReturnValue, @TableNum, @TableLastCreateTime, @TableLastModifyTime
    return是返回值,运行一个过程只能返回一个值,且必须为整数。通常用来表示执行状态(0成功,非0失败)。与C语言的函数类似。output是输出参数,一个过程可以有多个,类型可以是各种SQLServer支持的标量类型。通常用来将计算的标量值传出到变量。recordset是返回结果,一个过程可以有0到多个。