create table caps ( a int check(a between 0 and 10), b int check(b between 0 and 7), c int check(c between 0 and 0) ) -- init datas insert into caps values (10,0,0) create procedure trans ( @src char(1), -- 'a','b','c' @tag char(1) -- 'a','b','c' ) as begin .. end go大家继续补充
create procedure trans ( @src char(1), -- 'a','b','c' @tag char(1) -- 'a','b','c' ) as begin declare @cap_A int, @cap_B int , @cap_C int select @cap_A = a, @cap_B = b, @cap_C = c from caps if @src = 'a' and @tag = 'b' begin -- 从A倒到B杯 .. end else if @src = 'a' and @tag = 'c' begin -- 从A倒到C杯 .. end else if @src = 'b' and @tag = 'c' begin -- 从B倒到C杯 .. end else if @src = 'b' and @tag = 'a' begin -- 从B倒到A杯 .. end else if @src = 'c' and @tag = 'a' begin -- 从C倒到A杯 .. end else if @src = 'c' and @tag = 'b' begin -- 从C倒到B杯 .. end end
select @a=10, @b=0, @c=0
select @a=@a-3, @c=@c+3 -->a(7),b(0),c(3)
select @c=@c-3, @b=@b+3 -->a(7),b(3),c(0)
select @a=@a-3, @c=@c+3 -->a(4),b(3),c(3)
select @c=@c-3, @b=@b+3 -->a(4),b(6),c(0)
select @a=@a-3, @c=@c+3 -->a(1),b(6),c(3)
select @c=@c-1, @b=@b+1 -->a(1),b(7),c(2)
select @b=@b-7, @a=@a+7 -->a(8),b(0),c(2)
select @c=@c-2, @b=@b+2 -->a(8),b(2),c(0)
select @a=@a-3, @c=@c+3 -->a(5),b(2),c(3)
select @c=@c-3, @b=@b+3 -->a(5),b(3),c(0)
select @a,@b,@c
a b c
10 0 0
7 0 3
7 3 0
4 3 3
4 6 0
1 6 3
1 7 2
8 0 2
8 2 0
5 2 3
5 5 0
create table caps (
a int check(a between 0 and 10),
b int check(b between 0 and 7),
c int check(c between 0 and 0)
)
-- init datas
insert into caps values (10,0,0)
create procedure trans (
@src char(1), -- 'a','b','c'
@tag char(1) -- 'a','b','c'
) as begin
..
end
go大家继续补充
create procedure trans (
@src char(1), -- 'a','b','c'
@tag char(1) -- 'a','b','c'
) as begin
declare @cap_A int, @cap_B int , @cap_C int
select @cap_A = a, @cap_B = b, @cap_C = c from caps
if @src = 'a' and @tag = 'b' begin -- 从A倒到B杯
..
end else if @src = 'a' and @tag = 'c' begin -- 从A倒到C杯
..
end else if @src = 'b' and @tag = 'c' begin -- 从B倒到C杯
..
end else if @src = 'b' and @tag = 'a' begin -- 从B倒到A杯
..
end else if @src = 'c' and @tag = 'a' begin -- 从C倒到A杯
..
end else if @src = 'c' and @tag = 'b' begin -- 从C倒到B杯
..
end
end