sql server 2000 中触发器

来源:百度知道 编辑:UC知道 时间:2024/07/02 00:50:52
我在视图上创建了一个触发器。该视图包括三个基本表,这三个基本表有相同的一个列(如依次为A0,C0,BO,),现在我要通过该视图向基本表中插入信息,通过触发器中的特殊表inserted来选择各基本表的相关列,但是第一个表A0列有值,而其余两相同列的值全为NULL。请问这是为什么,有什么方法可以解决!谢谢!!!
相关代码如下:create trigger 书库_视图_tr on 书库_视图
instead of insert
as
begin
begin
insert into 图书
select 编号,书名,主编,出版社
from inserted
end
begin
insert into 使用情况(编号,学习时间,现状,学习方式,备注)
select 编号,学习时间,现状,用途,备注
from inserted
end
begin
insert into 购买信息(购买时间,定价,编号)
select 购买时间,定价,编号
from inserted
end
end
go

inserted 表是记录上一次插入记录的值.

当前
nsert into 图书
select 编号,书名,主编,出版社
from inserted
再次插入数据的时候.inserted保存的是你后面插入的记录..以前的记录已经被删除了..你怎么还查的到??

所以一般要进行多次插入的时候..都是用变量先保存记录值.

例如
insert into 图书
select 编号,书名,主编,出版社
from inserted

就可以改成

declare @bh varchar(50),@sm varchar(50)
select @bh=编号 from inserted
select @sm=书名 from inserted

insert into 图书(书名,编号) values(@sm,@bh)

insert into 使用情况(编号)
values(@bh)

这样的方法.我只写了一个.你自己按照方法去修改..

可否给出具体点的表 试图