插入触发器后删除
Posted
技术标签:
【中文标题】插入触发器后删除【英文标题】:Delete after Insert trigger 【发布时间】:2017-02-24 14:18:42 【问题描述】:每当我使用 ID 在对面表中插入同一行时,我都会尝试创建后插入触发器以从表中删除一行
但它不起作用
Create Trigger [dbo].[MeritedDeceased] On [dbo].[Deceased]
After Insert
As
Begin
Delete From dbo.Merited Where dbo.Deceased.ID = dbo.Merited.ID
End
【问题讨论】:
“不起作用”没有提供有关正在发生的事情的任何信息。在您的触发器中,您应该引用插入的虚拟表,否则您将删除比预期更多的数据。 我想删除整行,我应该创建一个视图还是什么? 删除哪一行?我们看不到您的屏幕,也不知道您要做什么。视图对此有何帮助? 【参考方案1】:我认为你的意思是做这样的事情(也许)......
CREATE TRIGGER [dbo].[MeritedDeceased] ON [dbo].[Deceased]
AFTER INSERT
AS
BEGIN
DELETE M
FROM [dbo].[MeritedDeceased] M
INNER JOIN Inserted I
ON I.ID = M.ID
;
END
;
翻译:每次在dbo.Deceased
中插入一行,从dbo.MeritedDeceased
中删除任何具有相同(插入)ID 的行。
仅供参考,这个TRIGGER
不仅会删除一行,还会删除一起插入的一批行。如果这就是您想要的,那么这应该会有所帮助。
【讨论】:
这也是我的猜测,但你的按键速度更快。 :) @SeanLange 我打字很快。这是我为数不多的可取之处之一 :) 并不是要从你那里偷走它。我们会看到 - 也许 OP 想要一些完全不同的东西。 LOL 没有所谓的“偷”它。您输入了一个非常有效的解决方案,并且应该得到所有发布它的功劳。干得好!! 这正是我一直在寻找的,感谢你们两个:D 很乐意提供帮助,哈迪。 @SeanLange 感谢您的支持。我爱这个社区...以上是关于插入触发器后删除的主要内容,如果未能解决你的问题,请参考以下文章