使用触发器设计

使用触发器设计

ID:42119938

大小:45.55 KB

页数:3页

时间:2019-09-08

使用触发器设计_第1页
使用触发器设计_第2页
使用触发器设计_第3页
资源描述:

《使用触发器设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、使用触发器设计1、DDL触发器设计(2005中新增加的功能)EXP1:禁止执行DLL语句。USEJXGLGO~如果存在同名的触发器,则删除之IFEXISTS(SELECTNAMEFROMSYSOBJECTSWHERETYPE二'TR'ANDNAME=5STOP_DDL_on_Table_and_PROCJ)DROPTRIGGERSTOP_DDL_on_Tab1e_and_PROCGOCREATETRIGGERSTOP_DDL_on_Tab1e_and_PROCONDATABASE--对数据库禁止执行对应的语句FORCRE

2、ATE_TABLE,DROP_TABLE,ALTER_TABLE,CREATE_PROCEDURE,ALTER_PROCEDURE,DROP_PKOCEDUREASSELECTEVENTDATAO.value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1J,,'nvarchar(max)')PRINT'YouarenotallowedtoCREATE,ALTERandDROPanyTablesandProcedures'ROLLBACKGOALTERTABLEXSADDXINT

3、—验证GODISABLETRIGGERSTOP_DDL_ON_TABLE_AND_PROCONDATABASE--关掉这个触发器GO一对整个服务器采収策略的话,也是很简单的,和上面的方法大致相同只不过将ondatabase的参数改为onserverCREATETRIGGERSTOP_DDL_on_Tab1e_and_PROCONALLSERVERFORCREATE_DATABASE,ALTER_DATABASE,DROP_DATABASEASPRINT'YouarenotallowedtoCREATE,ALTERandD

4、ROPanyDatabases1ROLLBACK2、如何利用触发器实现两个数据库间的同步EXP2:实现了为当前数据库JXGL中表xs创建触发器当插入数据时,同步向JXGL_BAK数据库表DBO.xsl插入数据,从而达到同步插入。CREATEDATABASEJXGL_BAKGOSELECTXS.*INTOJXGL_BAK..XSlFROMJXGL..XSGOUSEJXGLGOSETANSI_NULLSONSETQUOTED_IDENTIFIERONGOAUTHOR:江国粹CREATEDATE:2012-6-1DESCRIP

5、TION:~如果存在同名的触发器,则删除之IFEXISTS(SELECTNAMEFROMSYSOBjECTSWHERETYPE二'TR'ANDNAME二'TRIGGER_ADD_xs')DROPTRIGGERTRIGGER_ADD_xsGOCREATETRIGGER[TRIGGER_ADI)_xs]ON[DBO].[xs]AFTERINSERTASBEGIN―SETNOCOUNTONADDEDTOPREVENTEXTRARESULTSETSFROM―INTERFERINGWITHSELECTSTATEMENTS.SETN

6、OCOUNTONINSERTJXGL_BAK.DBO.xsl(XH,XM,XB,CSRQ,BJH)SELECTXH,XM,XB,CSRQ,BJHFROMINSERTEDENDGO一以下验证INSERTINTOXSVALUES('090101','陈军',1,'1992-6-4',8)SELECT*FROMXSWHEREXM二'陈军'SELECT*FROMJXGL_BAK..XS1WHEREXM二'陈军'―启示:类同,可将INSERT语句改为UPDATE,DELETEo—高级应用:若两个库处于不同的数据库服务器则应先进行以

7、下操作:在SERVER1上创建连接服务器,以便在SERVER1中操作SERVER2,实现同步EXECSP_ADDLINKEDSERVER'SERVER2''SQLOLEDB','SERVER2的数据库实例名或IP'EXECSP.ADDLINKEDSRVLOGIN'SERVER2,,'FALSE',NULL,'用户名’,’密码'GO3、如何利用触发器实现两个表间的级联删除与更新操作EXP3:实现两个功能:一是如果学生中学号更改,则要求相关表CJ中的学号也一起更改;二是如果有学生已经毕业,我希望删除他的学号的同时,也删除它的

8、所有记录。CREATETRIGGERTRI_XSONXS一在XS表中创建触发器FORUPDATE--为什么事件触发AS―事件触发后所要做的事情IFUPDATE(XII)BEGINUPDATECJSETXHCXHFROMCJA,DELETEDB,INSERTEDC—DELETED和INSERTED临时表WHEREA.X

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。