Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 参考 » 使用 SQL » SQL 语句 » SQL 语句 (A-D)

 

ALTER EVENT 语句

此语句用于更改事件的定义或者与之关联的、自动执行预定义操作的处理程序,或用于更改调度操作的定义。也可以使用此语句隐藏事件处理程序的定义。

语法 1 - 变更事件
ALTER EVENT [ owner.]event-name 
[ AT { CONSOLIDATED | REMOTE | ALL } ]
[ { DELETE TYPE 
   | TYPE event-type 
   | WHERE { trigger-condition | NULL }
   | { ADD | ALTER | DELETE } SCHEDULE schedule-spec } ]
[ ENABLE | DISABLE ]
[ [ ALTER ] HANDLER compound-statement | DELETE HANDLER ]
event-type :
  BackupEnd 
| Connect 
| ConnectFailed 
| DatabaseStart
| DBDiskSpace
| Deadlock 
| "Disconnect" 
| GlobalAutoincrement 
| GrowDB
| GrowLog 
| GrowTemp
| LogDiskSpace 
| RAISERROR
| ServerIdle 
| TempDiskSpace
trigger-condition :
event_condition( condition-name ) { = | < | > | != | <= | >= } value
schedule-spec :
[ schedule-name ]
   { START TIME start-time | BETWEEN start-time AND end-time }
   [ EVERY period { HOURS | MINUTES | SECONDS } ]
   [ ON { ( day-of-week, ... ) | ( day-of-month, ... ) } ]
   [ START DATE start-date ]
event-name | schedule-name :  identifier
day-of-week :  string
value | period | day-of-month :  integer
start-time | end-time : time
start-date : date
语法 2 - 隐藏事件处理程序的定义
ALTER EVENT event-name SET HIDDEN
参数
  • AT 子句   此子句用于更改处理事件所用数据库的相关规范。

  • DELETE TYPE 子句   此子句用于删除事件与事件类型的关联。有关事件类型的说明,请参见了解系统事件

  • ADD | ALTER | DELETE SCHEDULE 子句   此子句用于更改调度的定义。在任一 ALTER EVENT 语句中只能更改一个调度。

  • WHERE 子句   此子句用于更改触发事件的触发条件。WHERE NULL 选项删除条件。有关大多数参数的说明,请参见CREATE EVENT 语句

  • START TIME 子句   此子句用于指定事件的开始时间,还可用于指定事件的结束时间(可选)。start-timeend-time 参数为字符串(例如 '12:34:56')。不允许使用变量和表达式(例如 NOW())。

  • START DATE 子句   此子句用于指定事件的开始日期。start-date 参数是一个字符串。不允许使用变量和表达式(例如 TODAY())。

  • SET HIDDEN 子句   此子句用于隐藏事件处理程序的定义。指定 SET HIDDEN 子句的结果是对存储在 ISYSEVENT 系统表操作列中的事件处理程序定义进行永久性模糊处理。

注释

此语句可用于更改通过 CREATE EVENT 创建的事件定义。可能的用法包括:

  • 您可能需要隐藏事件处理程序的定义。

  • 在开发阶段,可能需要定义和测试没有触发器条件或调度的事件处理程序,然后在事件处理程序完成后,使用 ALTER EVENT 添加执行条件。

如果需要更改某个事件,可在该事件运行时通过执行 ALTER EVENT ...DISABLE 语句禁用这些视图。要在 Sybase Central 中禁用某个事件,请右击该事件,然后清除 [已启用] 选项。禁用该事件并不会中断当前事件处理程序的执行;事件处理程序会继续执行,直到完成。事件处理程序完成后,它不会重新启动,直到您重新启用它。您可以更改定义,然后重新启用。要确定哪些事件正在运行,请执行以下语句:

SELECT * 
FROM dbo.sa_conn_info()
WHERE CONNECTION_PROPERTY('EventName',Number ) = 'event-name'
权限

必须具有 DBA 权限。

副作用

自动提交。

另请参见
标准和兼容性
  • SQL/2003   服务商扩充。