Sql语句 与 触发器的问题
update bjmshelfmj set bjmshelfmj_test1=0
where mjbj_id=23 and moju_id=15这条能触发表中的触发器
另一条sql语句:
update bjmshelfmj set bjmshelfmj_test1=0 where moju_id in
(1,15)
and mjbj_id=23
这条却不能触发表中的触发器
触发器为:
create trigger Tri_UpdateMjbjMf
on bjmshelfmj
after update
as
if(select count(*) from bjmshelfmj,inserted as i where
bjmshelfmj.mjbj_id=i.mjbj_id and
bjmshelfmj.mshelf_id=i.mshelf_id and
bjmshelfmj.bjmshelfmj_test1=1 )=0
begin
update bjmshelf set bjmsshelf_test1=0 from inserted
where bjmshelf.mjbj_id=inserted.mjbj_id and bjmshelf.mshelf_id=inserted.mshelf_id
end
请教各位是什么原因呢?
是不是 因为 in 这个范围的影响造成的?
相关推荐
触发器创建sql语句
前后触发器创建语句使用sql语句创建触发器
在DB2中创建第一个触发器
在DB2中创建第一个触发器
sql server 2008 存储过程与储发器 详解 书籍
sqlserver2008 存储过程与储发器 详解 书籍
SQL Server 触发器 表的特定字段更新时,触发Update触发器
代码如下: create trigger TR_MasterTable_Update on MasterTable after update as if update ([Type])–当Type字段被更新时,才会触发此触发器 insert into MasterLogTable select Id ,(Case [Type] when 1 then ‘Type1’ when 2 then ‘Type2’ when 3 then ‘Type3’ when 4 then ‘Type4’ else ‘TypeDefault’ end) ,Name from inserted go 另外再补充一句
Sql Server触发器的使用
Sql Server为每个触发器都创建了两个专用表:Inserted表和Deleted表。这两个表由系统来维护,它们存在于内存中而不是数据库中。这两个表的结构总是与被该触发器作用的表的结构相同,触发器执行完成后,与该触发器相关的这两个表也被删除。 对表的操作 Inserted逻辑表 Deleted逻辑表 增加记录(insert) 存放增加的记录 无 删除记录(delete) 无 存放被删除的记录 修改记录(update) 存放更新后的记录 存放更新前的记录 三、for、after、instead of触发器 after:触发器在触发它们的语句完成后执行



