触发器执行后,主动触发的表怎么没有更新?

lmpeel 2008-07-21 12:59:15
比如:
CREATE TRIGGER insertToWL ON [dbo].[invoice]
FOR INSERT
AS

Declare @cvouchid nvarchar(30)
Declare @coperator nvarchar(20)
Declare @ccuscode nvarchar(20)

select @cvouchid = cvouchid , @coperator = coperator , @cCusCode = cCusCode from invoice inserted

insert into d_order(orderid,adate,cid,startworker)
values(@cVouchID,convert(varchar,getDate(),20),@cCusCode,@cOperator)

上面的触发器,在往invoice表插入数据时,在d_order表中会自动添加,但是在invoice表中确没有数据,应该怎么写才能2个表都插入数据? 也就是说怎么写才不影响原表的数据更新?
...全文
69 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lmpeel 2008-07-21
  • 打赏
  • 举报
回复
谢了,
是不是select @cvouchid = cvouchid , @coperator = coperator , @cCusCode = cCusCode from invoice inserted 语句的功能就是把inserted表中的数据取走了,inserted便不会插入数据了? 那么如果我要把字段值取出来做运算后再插入呢?该怎么写?
fcuandy 2008-07-21
  • 打赏
  • 举报
回复
CREATE TRIGGER insertToWL ON invoice
FOR INSERT
AS
BEGIN
INSERT d_order (orderID,aDate,cID,startWorker)
SELECT cvouchid,coperator,convert(varchar,getDate(),20),cCusCode,cOperator FROM INSERTED
END
中国风 2008-07-21
  • 打赏
  • 举报
回复
CREATE TRIGGER insertToWL ON [dbo].[invoice]
FOR INSERT
AS

insert into d_order(orderid,adate,cid,startworker)
select cvouchid , convert(varchar,getDate(),20),cCusCode,coperator
from inserted
wzy_love_sly 2008-07-21
  • 打赏
  • 举报
回复
CREATE TRIGGER insertToWL 
ON [dbo].[invoice]
FOR INSERT
AS
begin
insert into d_order(orderid,adate,cid,startworker)
select cvouchid,convert(varchar,getDate(),120),cCusCode,coperator from inserted
end


34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧