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
- Abre Sybase Central y navega hasta la vista de disparadores.
- 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''