/*定义一个BEFORE行级触发器,为教师表CM_Teacher定义完整性规则“教授的工资不得低于
5000元,如果低于4000元的话,自动改为4000元”*/
Create Trigger Insert_Or_Update_Sal /*在教师表CM_Teacher上定义触发器*/
before INSERT OR UPDATE ON CM_Teacher /*触发事件是插入或者更新操作*/
For Each Row /*这是行触发器*/
As Begin
if(CM_Teacher.CM_Teacher_post='教授')and(CM_Teacher.CM_Teacher_salary<5000)then
CM_Teacher.CM_Teacher_salary=5000;
end if;
End;
消息 102,级别 15,状态 1,过程 Insert_Or_Update_Sal,第 4 行
'before' 附近有语法错误。
消息 156,级别 15,状态 1,过程 Insert_Or_Update_Sal,第 7 行
关键字 'then' 附近有语法错误。另外,我用的是sql server2005
5000元,如果低于4000元的话,自动改为4000元”*/
Create Trigger Insert_Or_Update_Sal /*在教师表CM_Teacher上定义触发器*/
before INSERT OR UPDATE ON CM_Teacher /*触发事件是插入或者更新操作*/
For Each Row /*这是行触发器*/
As Begin
if(CM_Teacher.CM_Teacher_post='教授')and(CM_Teacher.CM_Teacher_salary<5000)then
CM_Teacher.CM_Teacher_salary=5000;
end if;
End;
消息 102,级别 15,状态 1,过程 Insert_Or_Update_Sal,第 4 行
'before' 附近有语法错误。
消息 156,级别 15,状态 1,过程 Insert_Or_Update_Sal,第 7 行
关键字 'then' 附近有语法错误。另外,我用的是sql server2005
--after INSERT ,UPDATE --写法1,后触发
--instead of INSERT ,UPDATE --写法2,前触发
--for INSERT ,UPDATE --写法3,前触发按照你的意思是想在更新前,先触发(写法2,写法3)
http://blog.csdn.net/greatmumuke/archive/2008/03/18/2193359.aspx
As
Begin
if exists (select 1 from inserted where CM_Teacher_post = '教授' and CM_Teacher_salary < 4000)
update CM_Teacher set CM_Teacher_salary = 4000 where id = (select id from inserted)
End;
看来不能只是死学,我反省