请各位大神帮忙看看触发器的问题

cqpcy123 2012-04-25 09:22:00
CREATE TRIGGER [TR_UPDATACPTK001] ON ACPTK
FOR UPDATE,INSERT
AS
DECLARE
@TD001 CHAR(04),
@TD002 CHAR(11),
@TD003 CHAR(04),
@TD005 VARCHAR(60),
@TD006 VARCHAR(60),
@TD008 NUMERIC(16,6),
@TD010 NUMERIC(17,8),
@TK017 CHAR(4),
@TK018 CHAR(11)
BEGIN TRANSACTION
SET NOCOUNT ON
SELECT @TK017=TK017,@TK018=TK018 FROM INSERTED
SELECT @TD001=TD001,@TD002=TD002,@TD003=TD003,@TD005=TD005,@TD006=TD006,@TD008=TD008,@TD010=TD010
FROM PURTD WHERE TD001=@TK017 AND TD002=@TK018
UPDATE ACPTK SET UDF02=@TD005,UDF03=@TD006,UDF52=@TD010,UDF53=@TD008
WHERE @TD003='0001' AND TK017=@TD001 AND TK018=@TD002
UPDATE ACPTK SET UDF04=@TD005,UDF05=@TD006,UDF54=@TD010,UDF55=@TD008
WHERE @TD003='0002' AND TK017=@TD001 AND TK018=@TD002
SET NOCOUNT OFF
COMMIT TRANSACTION
如果原表两行记录,只会更序号为0002的记录,而我想要是0001和0002都会更新上去?不知道哪里错了请各位大神帮忙看看
...全文
56 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
星火191314 2012-04-25
  • 打赏
  • 举报
回复
我感觉你的触发器建错表了,怎么可以在ACPTK上建触发器,让触发器再更新ACPTK呢?有点乱,你的INSERTED和PURTD是什么关系呢?是同一个表?
cqpcy123 2012-04-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

不要用变量,使用inserted和要更新的表直接关联
[/Quote]
去掉变量就好了~~!好神奇啊
百年树人 2012-04-25
  • 打赏
  • 举报
回复
不要用变量,使用inserted和要更新的表直接关联

34,593

社区成员

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

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