[ACCEPTED]-How do you identify the triggers associated with a table in a sybase database?-sybase
I also found out that
sp_depends <object_name>
will show you a lot 7 of information about a table, including 6 all triggers associated with it. Using 5 that, along with Ray's query can make it 4 much easier to find the triggers. Combined 3 with this query from Ray's linked article:
sp_helptext <trigger_name>
and 2 you can see the definition of the trigger:
sp_depends <trigger_name>
will 1 also show you all tables related to a trigger
to show triggers and create sql for a table:
select so.name, text
from sysobjects so, syscomments sc
where type = 'TR'
and so.id = sc.id
and text like '%TABLENAME%'
0
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
0
I believe there is (or at least 'was') some 5 issue where dependency information is not 4 always accurate. Therefore I would attempt 3 to approach it like this :
select name
from sysobjects
where xtype='TR'
and id in (select id from syscomments where text like '%MY-TABLE-NAME%')
Good luck.
PS-This 2 is untested code, leave a comment if it 1 doesn't work, and I'll fix it.
- Open Sybase Central and navigate to the triggers view.
- Click on the "Object Name" column to sort.
The "Object Name" column apparently shows 2 the table associated with the trigger. Scroll 1 down to the table you're interested in.
I would use following code, to make sure 4 you're getting the right objects. Since 3 Sybase 16 this won't be complete anymore, as 2 there might be more triggers of the same 1 type on one table.
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'
I am using SQL Anywhere 16 and it's easy 5 to find the triggers of a specific table. When 4 you open the table, there is a tab named 3 'Triggers'. But the query to find all the 2 triggers is a bit different from the answers 1 above:
select * from SYS.SYSTRIGGERS --where trigdefn like '%exec%'
SybaseASE:
SELECT so.name, Type=(CASE so.type WHEN 'V' Then 'View' WHEN 'P' THEN 'Procedure' WHEN 'TR' THEN 'Trigger' ELSE so.type END)
FROM sysobjects so, sysdepends d
WHERE
d.depid = object_id('MyTblName')
AND so.id =d.id
/* Just triggers
AND so.type = 'TR'
*/
ORDER BY so.type,so.name
0
More Related questions
We use cookies to improve the performance of the site. By staying on our site, you agree to the terms of use of cookies.