2008-11-25 64 views

回答

9

我還發現,

sp_depends <object_name> 

會告訴你很多關於表的信息,包括所有與之相關的觸發器。通過使用它,與Ray的查詢一起可以更容易地找到觸發器。從雷的鏈接文章這個查詢相結合:

sp_helptext <trigger_name> 

,你可以看到觸發的定義:

sp_depends <trigger_name> 

也將告訴你相關的觸發

10
select * 
from sysobjects 
where type = 'TR'

摘自here

+0

謝謝雷,我昨天一直在搜索,但從未找到那篇文章。它在那裏擁有豐富的有用信息。 – 2008-11-26 18:06:34

1

我相信所有的表(或者至少是'是')某些依賴信息並不總是準確的問題。因此,我會嘗試像這樣來處理它:

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

祝你好運。

PS-這是未經測試的代碼,如果它不起作用,請留言,我會解決它。

5

顯示觸發器和用於創建表的SQL:

select so.name, text 
from sysobjects so, syscomments sc 
where type = 'TR' 
and so.id = sc.id 
and text like '%TABLENAME%' 
3
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
  1. 打開Sybase Central並導航到觸發查看。
  2. 點擊「對象名稱」列進行排序。

「對象名稱」列顯然顯示與觸發器關聯的表。向下滾動至您感興趣的表格。

0

我會使用以下代碼,以確保您獲得正確的對象。由於Sybase 16不再完整,因爲在一張表上可能會有更多的相同類型的觸發器。

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' 
相關問題