create procedure transpro
@aid1 float, @aid2 float,@num int
as
begindeclare @ye int
declare @error int
begin transaction
select @ye=jine from account where aid=@aid1 if(@num > @ye)
begin
print '卡上余额不足'
rollback transaction
end
else
update account set jine=jine+@num where aid=@aid2
set @error=@error+@@error
update account set jine=jine-@num where aid=@aid1
set @error=@error+@@error
if @error>0
begin
print '转账失败!'
rollback transaction
end
else
begin
print '转账成功!'
commit transaction
end
end 当转账金额为2000 而余额只有800的时候,也能输出 转账成功这是怎么回事,不知道哪里有问题,请各位大侠帮忙啊!
@aid1 float, @aid2 float,@num int
as
begindeclare @ye int
declare @error int
begin transaction
select @ye=jine from account where aid=@aid1 if(@num > @ye)
begin
print '卡上余额不足'
rollback transaction
end
else
update account set jine=jine+@num where aid=@aid2
set @error=@error+@@error
update account set jine=jine-@num where aid=@aid1
set @error=@error+@@error
if @error>0
begin
print '转账失败!'
rollback transaction
end
else
begin
print '转账成功!'
commit transaction
end
end 当转账金额为2000 而余额只有800的时候,也能输出 转账成功这是怎么回事,不知道哪里有问题,请各位大侠帮忙啊!
@aid1 FLOAT,
@aid2 FLOAT,
@num INT
AS
BEGIN
DECLARE @ye INT
DECLARE @error INT BEGIN TRANSACTION SELECT
@ye = jine
FROM account
WHERE
aid = @aid1 IF(@num > @ye)
BEGIN
PRINT '卡上余额不足' ROLLBACK TRANSACTION
END
ELSE
UPDATE account
SET jine = jine + @num
WHERE aid = @aid2 SET @error=@error + @@error UPDATE account
SET jine = jine - @num
WHERE aid = @aid1 SET @error=@error + @@error IF @error > 0
BEGIN
PRINT '转账失败!' ROLLBACK TRANSACTION
END
ELSE
BEGIN
PRINT '转账成功!' COMMIT TRANSACTION
END
END
CREATE PROCEDURE transpro
@aid1 FLOAT,
@aid2 FLOAT,
@num INT
AS
BEGIN
DECLARE @ye INT
DECLARE @error INT BEGIN TRANSACTION SELECT
@ye = jine
FROM account
WHERE
aid = @aid1 IF(@num > @ye)
BEGIN
PRINT '卡上余额不足' ROLLBACK TRANSACTION
END
ELSE
BEGIN
UPDATE account
SET jine = jine + @num
WHERE aid = @aid2 SET @error=@error + @@error UPDATE account
SET jine = jine - @num
WHERE aid = @aid1 SET @error=@error + @@error IF @error > 0
BEGIN
PRINT '转账失败!' ROLLBACK TRANSACTION
END
ELSE
BEGIN
PRINT '转账成功!' COMMIT TRANSACTION
END
END
END