
复制Create Procedure Sale              (@Serial varchar(10),数据施详 -- 车次              @SaleCount int -- 所售票数              ) As              -- 取出剩余票数              Declare @RealCount int, -- 剩余票数              @Time varbinary(6) -- 时间戳              Select @RealCount=剩余票数, @Time=修改时间 From 车次表 Where 车次=@Serial              -- 判断票数是否够              If (@SaleCount > @RealCount)              Begin              Print ‘票数不够’              return              End              -- 更新数据              Declare @RowsCount int -- 更新时影响的行数              Update 车次表 Set 剩余票数=剩余票数-@SaleCount              Where 车次=@Serial and 修改时间=@Time              Set @RowsCount=@@RowsCount              /* @@RowsCount记录了修改最近一条SQL语句影响的行数,如果为1,库中
表示修改成功,
站群服务器丢失的解
如果为0,修改表示未修改任何行,问题出现这种情况的决措解原因就是
云南idc服务商其它事务已经修改了这条记录,造成修改时间这个自动的数据施详值变化了 */              -- 判断结果              If (@RowsCount = 0)              Print ‘事务并发造成的修改失败’              Else              Print ‘售票成功              Go             1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.      
作者:IT科技类资讯