同表内的触发器

来源:百度知道 编辑:UC知道 时间:2024/06/17 15:09:28
id sid name test
1 1 aa 123
2 2 bb 234
3 3 cc 345

现在插入一条数据
id sid name test
4 1 aa

要求 test列 自动生成
id sid name test
1 1 aa 123
中的test内容
也就是自动生成 '123'

create trigger trg_insert on table1 for insert
as
begin
declare @id int,@sid int,@name varchar(10)
set @id=(select id from inserted)
set @sid=(select sid from inserted )
set @name=(select name from inserted )
update table1 set test=(select top 1 test from table1 where id=@id and sid=@sid and name=@name)
end

以表名为T,sid和name作为相同条件为例
go
create trigger tr_t on t
after update
as

update a
set test=(select top 1 test from t where sid=a.sid and name=a.name)
from t a
where isnull(a.test,'')=''