una tabla sentencias funciones ejemplos ejemplo datos crear consultas complejas como agrupar agrupamiento agrupadas sql triggers sybase

tabla - funciones de agrupamiento en sql



¿Cómo identifica los desencadenantes asociados con una tabla en una base de datos de sybase? (7)

También descubrí que

sp_depends <object_name>

le mostrará mucha información sobre una tabla, incluidos todos los factores desencadenantes asociados. Usar eso, junto con la consulta de Ray puede hacer que sea mucho más fácil encontrar los factores desencadenantes. Combinado con esta consulta del artículo vinculado de Ray:

sp_helptext <trigger_name>

y puedes ver la definición del disparador:

sp_depends <trigger_name>

también le mostrará todas las tablas relacionadas con un disparador

Estoy usando SQL Advantage y necesito saber qué es el SQL para identificar los desencadenantes asociados con una tabla. No tengo la opción de utilizar otra herramienta, por lo que la buena solución SQL antigua es la respuesta ideal.


Creo que hay (o al menos ''fue'') algún problema donde la información de dependencia no siempre es precisa. Por lo tanto, trataría de abordarlo de esta manera:

select name from sysobjects where xtype=''TR'' and id in (select id from syscomments where text like ''%MY-TABLE-NAME%'')

Buena suerte.

PD: este es un código no probado, deje un comentario si no funciona y lo arreglaré.


para mostrar los desencadenantes y crear sql para una tabla:

select so.name, text from sysobjects so, syscomments sc where type = ''TR'' and so.id = sc.id and text like ''%TABLENAME%''


SELECT T.name AS TableName ,O.name TriggerName FROM sysobjects O INNER JOIN sys.tables T ON T.object_id = O.parent_obj WHERE O.type = ''TR'' AND T.name IN (''tableNames'') ORDER BY TableName


  1. Abre Sybase Central y navega hasta la vista de disparadores.
  2. Haga clic en la columna "Nombre del objeto" para ordenar.

La columna "Nombre del objeto" aparentemente muestra la tabla asociada con el desencadenador. Desplácese hacia la tabla que le interesa.


select * from sysobjects where type = ''TR''

Tomado de aquí .


Usaría el siguiente código para asegurarme de que recibes los objetos adecuados. Desde Sybase 16 esto ya no estará completo, ya que podría haber más factores desencadenantes del mismo tipo en una tabla.

select tr.id, tr.name, tr.type, tr.crdate, tr.loginame from sysobjects u join sysobjects tr on tr.id in (u.instrig, u.deltrig, u.updtrig, u.seltrig) where u.name = ''TABLENAME''