日期:2014-05-17  浏览次数:20661 次

sql 触发器 请大家帮帮忙,解释一下 O(∩_∩)O~
create trigger mytrigger on t1 for insert,update as--创建一个关联table:t1触发器 当insert的时候 触发update操作
begin
if(select max(cnt) from 
(select count(i.c1) as cnt from t1,--1
inserted i where t1.c1=i.c1 group by i.c1)--2 这两句的意思看不懂  i是什么意思? 是t1的复制吗
x)>1--这里的x又是什么意思?
rollback tran
end

------解决方案--------------------
i是表别名,i是inserted表的别名,别名是一些简短的名称来代替一些复杂表名的对象
inserted是触发器特有的临时表,记录插入时的数据以及update操作时的新数据
x也是表别名,from ()x,from后面一定要有表,用括号括起来的话没有明确的表名
所以一定要加一个表名确定这个括号所代表的表集合