to :zheninchangjiang(哈哈吼吼嘿嘿) 
我也是觉得没有问题的啊,但是它就是在运行的时候没有返回值给我啊
急死人了有谁能帮我解决它啊?!?!
郁闷啊

解决方案 »

  1.   

    第一,你自己可以做个简单的查询,来看看是不是得到的值是NULL
    第二、你是不是在程序中应用,我 想你应该是在程序中应用,请注意参数设置的问题,一定不能是input
    其他应该没有问题了
      

  2.   

    to :zheninchangjiang(哈哈吼吼嘿嘿) 1.我做过查询了,返回的是NULL值
    2.我肯定它是Output的。
    贼郁闷呀。
      

  3.   

    写的有问题AS
    select @BorrowedNumber = ReaderBorrowedbooks 
    from Reader 
    where ReaderID = @ReaderID
    RETURN 要用动态sql
      

  4.   

    to:xyxfly(小虾米 ╰⊙ō⊙╯ 至今思项羽,不肯过江东.) 可以说详细点吗???
    要怎么样用动态SQL呢???
    直接在程序里写select查询数据库吗????
    那为什么不能用这个存储过程来返回值呢?
      

  5.   

    出错的是这个变量
    @BorrowedNumber
    如果去了这个变量就可以得到查询的值,但是我不知道怎么样返回去
    select  ReaderBorrowedbooks 
    from Reader 
    where ReaderID = @ReaderID
    RETURN 
      

  6.   

    try

    ---》
    AS
    exec('select '+@BorrowedNumber+' = ReaderBorrowedbooks 
    from Reader 
    where ReaderID = '+@ReaderID+'
    RETURN ')
      

  7.   

    楼主的代码没有语法问题,估计是调用的问题.在调用时输出参数要加上OUTPUT关键字,这样试试:
    ALTER PROCEDURE dbo.StoredProcedureReaderBorrowedNumber
    (
    @ReaderID char(10),
    @BorrowedNumber int OUTPUT
    )
    AS
    select @BorrowedNumber = ReaderBorrowedbooks 
    from Reader 
    where ReaderID = @ReaderID
    print @BorrowedNumber    /*增加此行,用于比较上面的语句得到的@BorrowedNumber*/
    RETURN 
    GO
    ----调用存储过程
    declare @ReaderID char(10)
    declare @BorrowedNumber int
    set @ReaderID = '123'
    EXEC StoredProcedureReaderBorrowedNumber @ReaderID,@BorrowedNumber OUTPUT    /*调用时加上OUTPUT关键字*/select @BorrowedNumber     /*查看@BorrowedNumber,比较一下print@BorrowedNumber是否相同*/
      

  8.   

    仍然不知道是什么问题,但还是感谢各位的热情解答
    暂时使用  xyxfly(小虾米 ╰⊙ō⊙╯ 至今思项羽,不肯过江东.) 的方法,解决了这个问题,
    只是不知道为什么这个存储过程用不了,郁闷ING
      

  9.   

    问题出在你@BorrowedNumber没有初始化