1

データベース内のすべてのトリガー、関数、および手順のリストを取得する方法は? また、ユーザーのトリガー、関数、手順のみを取得することはできますか?

select Name from sys.all_objects where type = 'udp'

このクエリは、すべてのユーザーのプロシージャのリストを返しますか?

4

2 に答える 2

6
select type, name
from sys.objects
where type in (
  'tr', -- triggers
  'p', -- procedures
  'if','fn','tf' -- functions
  --,'fs','ft' -- CLR functions
  )
  and is_ms_shipped = 0 -- user-defined

参考:sys.objects

于 2012-10-04T21:12:51.743 に答える
3

手続き用

select * from sys.procedures

関数用

SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE = 'FUNCTION'

トリガー用

 SELECT S2.[name] TableName, S1.[name] TriggerName, CASE WHEN S2.deltrig = s1.id THEN 'Delete' WHEN S2.instrig = s1.id THEN 'Insert' WHEN S2.updtrig = s1.id THEN 'Update' END 
'TriggerType' , 'S1',s1.*,'S2',s2.* FROM sysobjects S1 JOIN sysobjects S2 ON S1.parent_obj = S2.[id] WHERE S1.xtype='TR'

これについてはよくわからないので、ググってみました

于 2012-10-04T20:52:54.847 に答える