当触发事件处理程序时,会建立一个可在其上执行事件处理程序的临时内部连接。处理程序不是 在导致处理程序触发的连接上执行的,因此诸如 MESSAGE ...TO CLIENT 之类与客户端应用程序进行交互的语句在事件处理程序内是没有意义的。同样,也不允许会返回结果集的语句。
用于执行处理程序的临时连接不计入授权的连接限制,不会为 login_procedure 选项指定的过程执行事件连接。
创建事件需要有 DBA 权限,而执行事件则需要有其创建者的权限。如果您希望事件处理程序以非 DBA 权限执行,则可以从处理程序内调用过程,因为存储过程以其创建者的权限运行。
任何事件错误都会记录到数据库服务器消息日志中。
如果在执行期间未检测到任何错误,则将提交事件处理程序中的事务。如果检测到错误,将回退。
如果错误出现在原子复合语句内且该语句具有可处理该错误的异常处理程序,则在该语句中所进行的任何更改均将保持未完成状态。如果异常处理程序不处理错误或导致另一错误(包括通过 RESIGNAL),则在原子复合语句内所做的更改会被撤消。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |