欢迎来到天天文库
浏览记录
ID:65501538
大小:123.00 KB
页数:8页
时间:2022-01-09
《封锁的相容矩阵》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、封锁的相容矩阵不相容请求相容请求封锁粒度相容矩阵T1T2ISXI+--S-+-X---封锁粒度更精细的相容矩阵T1T2ISIXSXIS+++-IX++--S+-+-X----封锁粒度ISIXSSIXXISIXSSIXX更精细的相容矩阵举例对于XSCJ数据库,如果在XS表中添加或更改数据,则将向客户端显示一条信息。/*使用带有提示消息的触发器*/USEXSCJIFEXISTS(SELECTnameFROMsysobjectsWHEREname='reminder'ANDtype='TR')DROPTRIGGERreminderGOCREATE
2、TRIGGERreminderONXSFORINSERT,UPDATEASRAISERROR(4008,16,10)GO【例】在数据库XSCJ中创建一触发器,当向XS_KC表插入一记录时,检查该记录的学号在XS表是否存在,检查课程号在KC表中是否存在,若有一项为否,则不允许插入。USEXSCJIFEXISTS(SELECTnameFROMsysobjectsWHEREname='check_trig'ANDtype='TR')DROPTRIGGERcheck_trigGOCREATETRIGGERcheck_trigONXS_KCFORINSERTASSELECT*FROMinserted
3、aWHEREa.学号NOTIN(SELECTb.学号FROMXSb)ORa.课程号NOTIN(SELECTc.课程号FROMKCc)BEGINRAISERROR('违背数据的一致性.',16,1)ROLLBACKTRANSACTIONEND【例】在XSCJ数据库的XS_KC表上创建一触发器,若对学号列和课程号列修改,则给出提示信息,并取消修改操作。USEXSCJGOCREATETRIGGERupdate_trigONXS_KCFORupdateAS/*检查学号列(C0)和课程号列(C1)是否被修改,如果有某些列被修改了,则取消修改操作。*/IF(COLUMNS_UPDATED()&3)>0
4、BEGINRAISERROR('违背数据的一致性.',16,1)ROLLBACKTRANSACTIONENDGO【例】在XSCJ数据库中创建表、视图和触发器,以说明INSTEADOFINSERT触发器的使用。USEXSCJCREATETABLEbooks(BookKeyintIDENTITY(1,1),BookNamenvarchar(10)NOTNULL,Colornvarchar(10)NOTNULL,ComputedColAS(BookName+Color),Pagesint)GO/*建立一个视图,包含基表的所有列*/CREATEVIEWView2ASSELECTBookKey,Bo
5、okName,Color,ComputedCol,PagesFROMbooksGO/*在View2视图上创建一个INSTEADOFINSERT触发器*/CREATETRIGGERInsteadTrigonView2INSTEADOFINSERTASBEGIN/*实际插入时,INSERT语句中不包含BookKey字段和.ComputedCol.字段的值*/INSERTINTObooksSELECTBookName,Color,PagesFROMinsertedENDGO
此文档下载收益归作者所有