SQL Advantage を使用しており、テーブルに関連付けられたトリガーを識別するために SQL が何であるかを知る必要があります。別のツールを使用するオプションがないため、古き良き SQL ソリューションが理想的な答えです。
36668 次
8 に答える
11
選択する * システムオブジェクトから ここで、タイプ = 'TR'
ここから撮影。
于 2008-11-26T06:40:15.767 に答える
11
ということもわかりました
sp_depends <object_name>
テーブルに関連付けられたすべてのトリガーを含む、テーブルに関する多くの情報が表示されます。これを Ray のクエリと共に使用すると、トリガーを見つけるのがはるかに簡単になります。Ray のリンクされた記事からのこのクエリと組み合わせると、次のようになります。
sp_helptext <trigger_name>
トリガーの定義を確認できます。
sp_depends <trigger_name>
トリガーに関連するすべてのテーブルも表示されます
于 2008-11-26T18:10:55.047 に答える
5
トリガーを表示し、テーブルの sql を作成するには:
select so.name, text
from sysobjects so, syscomments sc
where type = 'TR'
and so.id = sc.id
and text like '%TABLENAME%'
于 2011-01-11T13:28:25.473 に答える
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
于 2011-12-30T12:13:41.847 に答える
1
依存関係情報が常に正確ではないという問題がある (または少なくとも「あった」) と思います。したがって、私は次のようにアプローチしようとします:
select name
from sysobjects
where xtype='TR'
and id in (select id from syscomments where text like '%MY-TABLE-NAME%')
幸運を。
PS-これはテストされていないコードです。動作しない場合はコメントを残してください。修正します。
于 2008-11-29T07:14:26.887 に答える
0
正しいオブジェクトを取得していることを確認するために、次のコードを使用します。Sybase 16 以降、1 つのテーブルに同じタイプのトリガーがさらに存在する可能性があるため、これは完全ではなくなります。
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'
于 2016-09-30T12:15:30.833 に答える
0
- Sybase Central を開き、トリガー ビューに移動します。
- 「オブジェクト名」列をクリックしてソートします。
「オブジェクト名」列には、トリガーに関連付けられたテーブルが表示されます。興味のあるテーブルまでスクロールします。
于 2015-06-19T18:06:43.103 に答える