ALTER PROCEDURE [dbo].[StoredProcedureBookNumber]
(
@BookID char(10),
@BookNumber int OUTPUT
)AS
select @BookNumber=BookRemain 
from Book where BookID=@BookID
RETURN 在SQL SERVER 2005中,
如下declare bookid int;
declare booknumber int;
set bookid=1;
然后执行
exec StoredProcedureBookNumber bookid,output booknumber;
go

这样赋值有问题吗?然后我可以使用被赋值了的booknumber了吗?然后在c#中赋值的话,
int booknumber=0;
cmd.paramaters.add("@BookNumber",out booknumber);
这样对吗?(这里用out 而不是output对吗?)

解决方案 »

  1.   

    declare @bookid int;
    declare @booknumber int;
    set @bookid=1;
    exec StoredProcedureBookNumber @bookid,@booknumber output ;
    select @booknumber
    go
      

  2.   

    exec StoredProcedureBookNumber @bookid,@booknumber output
      

  3.   


    --定义两个变量
    declare @bookid int;
    declare @booknumber int;
    --给@bookid赋值,因为执行存储过程的时候要用到;至于@booknumber可以赋初值,也可以不赋,
    --如果赋了,执行完存储过程之后也会被覆盖的
    set @bookid=1;
    exec StoredProcedureBookNumber @bookid,@booknumber output ;
    --执行完存储过程之后,@booknumber 已经被赋值,再将它的值打印出来
    print @booknumber
      

  4.   

    在SQL SERVER 2005中 执行declare @booknumber int output ;
    然后执行
    exec StoredProcedureBookNumber 1,booknumber;
    go