触发器是一类特殊的存储过程,开发人员也可以定义、编写符合业务需求的触发器来维护数据的完整性。触发器的控制流程及控制语句与存储过程相同,但触发器与存储过程还是有相当大的差别,触发器的定义格式及开启方式与存储过程不同,作为数据管理员或编程人员,熟练掌握触发器的用法对维护、 *** 作数据库非常重要。基本语法1.创建触发器语法格式创建语法:CREATETRIGGER+触发器名称+触发时间点+触发事件+ON+表名+FOREACHROWBEGIN…END其中,触发时间点:BEFORE或AFTER,指明是在触发事件之前还是之后执行。
触发事件:INSERT、UPDATE、DELETE事件。例如,以下语句创建一个名字叫upd_check的触发器,其在对account表作更新(UPDATE) *** 作之前(BEFORE)自动触发。
CREATETRIGGERupd_checkBEFOREUPDATEONaccountFOREACHROWBEGIN…END2.删除触发器语法格式DROPTRIGGER+触发器名称3.触发器案例用tab.sql脚本创建表环境,然后用下面语句创建触发器。当往tab1表添加记录后将触发此触发器,将此新记录同时插入tab2表中。
DELIMITER//DROPTRIGGERIFEXISTSt_afterinsert_on_tab1CREATETRIGGERt_afterinsert_on_tab1AFTERINSERTONtab1FOREACHROWBEGINinsertintotab2(tab2_id)values(new.tab1_id)END//DELIMITER当用下面语句往tab1表插入记录时,tab2表中同时也添加了同样的记录,如图tab1数据表
tab1数据表
tab2数据表
INSERTINTOtab1(tab1_id)values('0001')
tab.sql
set 借书.[借出时间] = @天数 + 借书.[借入时间]这句改为
set 借书.[借出时间] = DATEADD(DAY,@天数,借书.[借入时间])
试一下
int 和 datetime类型不能直接 + 运算的
<td height="22" align="right" valign="middle">截止日期:</td> <td height="0" align="left" valign="middle" class="aaa"><%=rs("a8")%> <% if DateDiff("d",rs("a8"),date()) <0 thenResponse.Write("会员卡已经到期!")end if%> </td> </tr>欢迎分享,转载请注明来源:内存溢出
评论列表(0条)