create proc DingDan_Add
(
@VIPID varchar(50),
@TaoXiID int,
@ShopID int,
@TaoXiText nvarchar(1000),
@Time1 varchar(50),
@Time2 varchar(50),
@Time3 varchar(50),
@BeiZhu nvarchar(1000),
@DD_Type int,
@DD_PayType int,
@DD_Money float,
@End int,
@Give int,
@ZengSongID int,
--以下为Pay表数据
@Pay_Money float,
@InTime datetime,
@JingShou int,
@P1 int,
@P2 int,
@P3 int,
@P4 int,
@Pay_Type int,
@Pay_PayType int
)
as
DECLARE @Error_DingDan int,@Error_Pay int,@Error_EditVIPScore int,@Error_ZengSong int,@Error_ZengSongDingDan int,@DingDanID int,@ZengSongDingDanID int,@ZengSongTaoXiText nvarchar(1000)
begin transaction DingDan
insert DingDan values(@VIPID,@TaoXiID,@ShopID,@TaoXiText,@Time1,@Time2,@Time3,@BeiZhu,@DD_Type,@DD_PayType,@DD_Money,@End,@Give)
Set @DingDanID=@@identity
Set @Error_DingDan=@@Error
if(@ZengSongID>0)
Set @ZengSongTaoXiText=(select T_Text from TaoXi where T_ID=@ZengSongID)
if(@ZengSongID>0)
insert DingDan values(@VIPID,@ZengSongID,@ShopID,@ZengSongTaoXiText,'','','','',@DD_Type,0,0,@End,0)
Set @ZengSongDingDanID=@@identity
Set @Error_ZengSongDingDan=@@Error
if(@ZengSongID>0)
insert ZengSong values(@DingDanID,@ZengSongDingDanID)
Set @Error_ZengSong=@@Error
insert Pay values(@DingDanID,@Pay_Money,@InTime,@JingShou,@P1,@P2,@P3,@P4,@Pay_Type,@Pay_PayType)
Set @Error_Pay=@@Error
update VIP Set V_Score=V_Score+@Pay_Money where V_ID=@VIPID
Set @Error_EditVIPScore=@@Error
if @Error_DingDan>0 or @Error_Pay>0 or @Error_EditVIPScore>0 or @Error_ZengSong>0 or @Error_ZengSongDingDan>0
begin
Rollback transaction DingDan
end
else
commit transaction DingDan
go请问,我现在程序执行这个存储过程,我怎么才能在程序里面得到@DingDanID的值?以前都是一条sql语句@@identity得到的

解决方案 »

  1.   

    增加返回参数:Return @DingDanID as DingDanID.
      

  2.   

    存储过程的开头 加 @DingDanID INT OUTPUT
    完了在 SQL过程中 赋给该参数 (Return @DingDanID as DingDanID)
      

  3.   


    完了在 SQL过程中 赋给该参数 (Return @DingDanID as DingDanID)这句话不理解
      

  4.   

    参考
    http://www.cnblogs.com/study123/archive/2008/12/03/1346770.html
      

  5.   

    存储过程里面的最后加上select @DingDanID
      

  6.   


    非常感谢,http://topic.csdn.net/u/20120202/09/f9b107f5-b737-4337-a07c-e630981d2b71.html在这里面也回复下,我把那40分也给你