删除型触发器.一次删除多条记录,只被触发一次,还是删除多少条记录触发多少次 参考:http://www.gzit.edu.cn/gut/magazine/xb991/99xb1-3/99xb13-6.html 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 oracle 和 mssql 中触发器是不一样的. 我认为是一次。首先,就DELETE而言,不管你一次删除多少行,只要有一行破坏了触发器,整个删除语句撤销,返回错误,不删除任何行。实际上是一个事务。同样,触发器也是个事务,它在DELETE发生的时候被激活,执行触发器的T-SQL代码,如此而已。如果认为是多次激活触发器的话,可以尝试一下删除多行,而其中的行对应于触发器中的不同响应,查看结果,是有的对应结果存在,还是一个都没有?这样就可以知道了是一个事务,还是多个事务了,也就是到底触发了几次删除触发器 只触发1次如:creaet ....for deleteas select * into 临时表 from deleted---------------^^^^^^^生成的表有多条记录 我认为只触发一次你可以将触发器改成:create.....for delete asdelete from table1 where id in(select id from deleted) 以SQL身份验证方式成功登录了SQL2008后不能打开建的数据库 问个sql处理事情 求一存储过程 在SQL中怎么实现字符串序号的自增 如何把SQL Server数据库中的ID按升序排列? 用select into 创建一个表,怎样在新表中添加一个字段来表示from表的所在的行号 PB中如何重新设置按钮或其它文本框的TAB键顺序 谁知道这种是什么方式的数据库连接? 全文索引调度问题 如何在VF中使用rand() 关于在SQLServer中如何只取datetime型字段的日期值。 请问各位大哥??
首先,就DELETE而言,不管你一次删除多少行,只要有一行破坏了触发器,整个删除语句撤销,返回错误,不删除任何行。实际上是一个事务。
同样,触发器也是个事务,它在DELETE发生的时候被激活,执行触发器的T-SQL代码,如此而已。
如果认为是多次激活触发器的话,可以尝试一下删除多行,而其中的行对应于触发器中的不同响应,查看结果,是有的对应结果存在,还是一个都没有?这样就可以知道了是一个事务,还是多个事务了,也就是到底触发了几次删除触发器
如:
creaet ....
for delete
as
select * into 临时表 from deleted
---------------^^^^^^^生成的表有多条记录
你可以将触发器改成:
create.....
for delete
as
delete from table1 where id in(select id from deleted)