兄弟们,执行时没什么问题,就是有时会不执行
===============================================
       if(@@error<>0) goto error
       update sw_ka_detail set status=1 where id=@sall_ka_id                                            --修改卡的状态
       if(@@error<>0) goto error
       insert into sw_ka_sall (ka_id,sall_time,sall_money,ka_ren) values(@sall_ka_id,getdate(),@sall_money,@user_id)    --添加销售纪录
       if(@@error<>0) goto error
===========================================
直接执行
=======================
select id as a1,ka_name as a2,ka_pass as a3 from sw_ka_detail where id=@sall_ka_id               --显示用户名和密码===============================
我买的是网络上的数据库,会不会是网络有问题呢?

解决方案 »

  1.   

    當錯誤的嚴重級別很高時,if(@@error<>0) goto error 無用,程式會自己中止,
    這樣處理:CREATE proc dbo.proc_di_sall                                          --外挂和实物卡销售
      @ka_id int,                --卡类型的id
      @user_id int
    as
    begin
    declare @sall_money  money    --销售金额
    declare @have_money  money    --当前有多少钱
    declare @sall_ka_id int       --有销售卡的id
    set nocount on
    SET XACT_ABORT ON 
    ...
    当 SET XACT_ABORT 为 ON 时,如果 Transact-SQL 语句产生运行时错误,整个事务将终止并回滚。