日期:2014-05-17  浏览次数:20620 次

求高手写一个insert触发器
我有一张test表,有三个字段A:char(5)、B:char(2)、 C:int(3)
假设字段对应有以下一组数据:
A B C
b1101 b1 101
现在插入数据:insert into test(B) values('b2');
我需要把字段A的值赋值为:b2102,字段C的值赋值为 102。
意思就是字段A的值为 当前行的字段B的值 加上字段C现有值的最大值加一(字符串连接)。
表test
A B C
b2102 b2 102

小弟刚刚学触发器,实在是头大,忘高人指点~!!感激不尽
小弟用的是Mysql 5.0。。。

------解决方案--------------------
SQL code

go
if OBJECT_ID('test')is not null
drop table test
go
create table test(
A char(5),
B char(2),
C int
)
go
insert test
select 'b1101','b1',101

--按照你的要求建立触发器
go
if OBJECT_ID('tri_tracy')is not null
drop trigger tri_tracy
go
create trigger tri_tracy on test
instead of insert
as
declare @A char(5),@B char(2),@C int
select @B=B from inserted
select @A=@B+ltrim(max(C)+1),@C=max(C)+1 from test
insert test values(@A,@B,@C)

go
insert test(B)
select 'B2'

select * from test
/*
A    B    C
b1101    b1    101
B2102    B2    102
*/