日期:2014-05-18  浏览次数:20390 次

求助:带返回值的存储过程无法取得返回值
存储过程:
SQL code

IF EXISTS (SELECT * FROM sys.objects O WHERE O.type='P' AND O.name='XT_PROC_GetBillNo')
BEGIN
    DROP PROCEDURE XT_PROC_GetBillNo
END
GO
CREATE PROCEDURE XT_PROC_GetBillNo
    @BillNo                VARCHAR(100) OUT 
AS
BEGIN
    select @BillNo= 'ACD'
END

GO

----执行存储过程

    DECLARE @BillNo INT
    EXECUTE XT_PROC_GetBillNo @BillNo
    SELECT @BillNo




返回值为 NULL 值,为什么



------解决方案--------------------
SQL code
IF EXISTS (SELECT * FROM sys.objects O WHERE O.type='P' AND O.name='XT_PROC_GetBillNo')
BEGIN
    DROP PROCEDURE XT_PROC_GetBillNo
END
GO
CREATE PROCEDURE XT_PROC_GetBillNo
    @BillNo                VARCHAR(100) OUT 
AS
BEGIN
    select @BillNo= 'ACD'
END

GO

----执行存储过程

    DECLARE @BillNo VARCHAR(100)
    EXECUTE XT_PROC_GetBillNo @BillNo OUT
    SELECT @BillNo
/*
ACD
*/