sql触发器for delete触发器问题 10

CREATETRIGGERtrigger_AONAFORINSERT,UPDATE,DELETEASIFUPDATEBEGIN...ENDGO要怎样判断是不是DELETE... CREATE TRIGGER trigger_A
ON A
FOR INSERT,UPDATE,DELETE
AS
IF UPDATE
BEGIN
...
END
GO
要怎样判断是不是DELETE
如:
(IF DELETE
BEGIN
...
END)
这样是不行的,不知道要怎样判断,求解。
展开
 我来答
freeeeeewind
2014-08-29 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1337万
展开全部
---在表A上单独为Delete创建一个触发器
CREATE TRIGGER [dbo].[trigger_A] 
   ON  [dbo].A
   AFTER DELETE
AS 
BEGIN
……
END

或者

CREATE TRIGGER [dbo].[trigger_A] 
   ON  [dbo].A
   FOR DELETE
AS 
BEGIN
……
END
清水栞
2014-08-29 · TA获得超过1547个赞
知道小有建树答主
回答量:1538
采纳率:50%
帮助的人:980万
展开全部
你要把delete和update分开处理,不如建两个触发器,一个for update一个for delete
追问
就是因为不想要那么多个才会这样问的啦
追答
DECLARE
    @IsInsert bit,
    @IsUpdate bit,
    @IsDelete bit

IF EXISTS(SELECT 1 FROM inserted) AND NOT EXISTS(SELECT 1 FROM deleted)
    SET @IsInsert = 1
ELSE
    SET @IsInsert = 0

IF EXISTS(SELECT 1 FROM inserted) AND EXISTS(SELECT 1 FROM deleted)
    SET @IsUpdate = 1
ELSE
    SET @IsUpdate = 0

IF NOT EXISTS(SELECT 1 FROM inserted) AND EXISTS(SELECT 1 FROM deleted)
    SET @IsDelete = 1
ELSE
    SET @IsDelete = 0


希望这个对你的帮助 

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
z6502367
推荐于2018-04-13 · TA获得超过177个赞
知道小有建树答主
回答量:339
采纳率:100%
帮助的人:196万
展开全部
应该是对的啊 你试一下

IF DELETE
BEGIN
里面打印一下呢
END
追问
很明显是不行的啦,要不我也不会有此一问的啦
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
殇忄路
2014-08-29 · TA获得超过560个赞
知道小有建树答主
回答量:478
采纳率:81%
帮助的人:328万
展开全部
有delete么?⊙﹏⊙b汗

查了下 这样行
CREATE TRIGGER trigger_A
ON A
on delete
as
begin

end;
追问
就是不知道才问哦,亲
请问你有什么好办法吗?
追答
改了下 你看看是不是要的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式