create trigger on student for update AS BEGIN if update(test2) update student set test2=''end
笔误,写错了条件 test2 ,应该为 test1create trigger on student for update AS BEGIN if update(test1) update student set test2=''end
if update(test1) update a set test2='' from student a inner join inserted b on a.stuid=b.stuid where b.test1 = ''
刚才的两个触发器,忘记带查询条件了,下面修改一下create trigger on student for update AS BEGIN if update(test1) update student set test2='' where stuID=(select stuID from deleted)end
2楼我是想删除test1 不是UPDATA
arrow_gx: 我的意思是删除操作触发事件
要刪除就是要刪一行 而你只刪一行的某一列 那就是相當於UPDATE
这不是删除,是修改,也就是update CREATE TRIGGER trig_update ON student FOR UPDATE AS declare @id int declare @test1dd select @id=stuID from inserted select @test1dd=test1 from inserted IF UPDATE(test1) //判断是否修改了这列 BEGIN if(@test1dd="") //判断修改的是否为空 update student set test2="" where stuID=@id END GO 已经解决了,谢谢大家!
for update
AS
BEGIN
if update(test2)
update student set test2=''end
for update
AS
BEGIN
if update(test1)
update student set test2=''end
update a set test2=''
from student a
inner join inserted b on a.stuid=b.stuid
where b.test1 = ''
for update
AS
BEGIN
if update(test1)
update student set test2='' where stuID=(select stuID from deleted)end
不是UPDATA
我的意思是删除操作触发事件
CREATE TRIGGER trig_update
ON student
FOR UPDATE
AS
declare @id int
declare @test1dd
select @id=stuID from inserted
select @test1dd=test1 from inserted
IF UPDATE(test1) //判断是否修改了这列
BEGIN
if(@test1dd="") //判断修改的是否为空
update student set test2="" where stuID=@id
END
GO
已经解决了,谢谢大家!