我正在使用SQL Advantage,需要知道SQL是用來識別與表關聯的觸發器的。我沒有選擇使用其他工具,所以老式的SQL解決方案是理想的答案。如何識別與sybase數據庫中的表關聯的觸發器?
8
A
回答
9
我還發現,
sp_depends <object_name>
會告訴你很多關於表的信息,包括所有與之相關的觸發器。通過使用它,與Ray的查詢一起可以更容易地找到觸發器。從雷的鏈接文章這個查詢相結合:
sp_helptext <trigger_name>
,你可以看到觸發的定義:
sp_depends <trigger_name>
也將告訴你相關的觸發
10
select * from sysobjects where type = 'TR'
摘自here。
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
- 打開Sybase Central並導航到觸發查看。
- 點擊「對象名稱」列進行排序。
「對象名稱」列顯然顯示與觸發器關聯的表。向下滾動至您感興趣的表格。
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'
相關問題
- 1. 如何識別應用於(關聯)mysql中的表的觸發器?
- 2. 如何發現PostgreSQL數據庫中的表之間的關聯?
- 3. MySql觸發器,識別直接訪問數據庫
- 4. 從觸發器(Sybase)中觸發觸發器的sql
- 5. 如何將數據庫表與ATK中的模型關聯?
- 6. 如何獲取數據庫中活動觸發器的列表?
- 7. 關聯數據庫中的兩個表
- 8. 觸發器中的sybase遊標
- 9. 如何識別架構觸發器中的更改值?
- 10. 如何識別數據庫列的數據中的換行符?
- 11. 記錄關係數據庫(表,視圖,函數,觸發器)
- 12. 如何查找與特定表相關的Oracle數據庫中的所有代碼和觸發器?
- 13. LLBLGEN中的TypedList如何與數據庫相關聯?
- 14. 如何識別數據表的列名
- 15. 與觸摸識別
- 16. 表從數據庫在Sybase
- 17. 單擊列表項時如何識別關聯的小部件?
- 18. Sybase:如何訪問更新觸發器中已更改的列
- 19. Oracle數據庫中的表觸發器的多模式權限
- 20. 更新另一個數據庫中的表的觸發器
- 21. 如何在mysql中的表中插入數據後觸發一個觸發器
- 22. 如何更新多個數據庫中的觸發器?
- 23. 如何刪除Firebird 1.5數據庫中的所有觸發器
- 24. 如何在MYSQL中找到所有的數據庫觸發器?
- 25. 如何列出MySQL數據庫中的所有觸發器?
- 26. 如何在命令觸發器中識別語音
- 27. 如何識別標記爲級聯的關聯刪除
- 28. 推薦任何好的sybase數據庫表查看器
- 29. 創建與另一個數據庫關聯的數據庫
- 30. Django版本的數據庫觸發器?
謝謝雷,我昨天一直在搜索,但從未找到那篇文章。它在那裏擁有豐富的有用信息。 – 2008-11-26 18:06:34