SQL触发器在插入记录中根据A字段自动给B字段赋值

假如我有一个人员信息表,表的字段结构如下:
姓名 性别 性别值

性别字段,如果为男,性别值为0;
性别字段,如果为女,性别值为1;
性别字段,如果为中性,性别值为3;

在插入记录的时候,只会插入 姓名和性别两个字段。现在想要通过触发器来自动填充后面一个‘性别值’字段。
这个如何实现呢?求指导。插入的时候,可能一次性插入多条记录。
(MSSQL 2008数据库)

1个回答

sqlserver貌似是不支持oracle的for each row的所以,这个insert触发器只能触发一次,不过,插入的语句全部都暂时存储到了inserted的临时表中
你可以利用一个指针来遍历这个表实现每行数据的更新,下面这个代码你可以试试
create trigger add_sexnum
on TableName
after insert
as
begin
declare @sex varchar(5);
declare mcursor cursor for select sex from inserted;
open mcursor
fetch next from mcursor into @sex
while @@FETCH_STATUS = 0
begin
if(@sex='男')
begin
//你的操作
end
else
begin
//你的操作
end
fetch next from mcursor into @sex
end
close mcursor
deallocate mcorsor
end
go

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐