Действительно ли возможно использовать .NET (C# SQL CLR) для нахождения всех триггеров связанными с таблицей?
И также я смогу определить тип того триггера? - CLR или T-SQL?
Спасибо, Chaks
Ну, у нас есть SQL Server Management Objects, включая Database.Triggers, или вы всегда можете использовать некоторые команды T-SQL из .NET и посмотреть на некоторые системные представления, такие как sys.triggers, если у вас есть права.
Вы можете сделать это с помощью запроса к системным таблицам. Что-то вроде следующего:
SELECT tr.name as TriggerName,
tr.type_desc TriggerType,
tbl.name TableName,
sch.table_schema SchemaName
FROM sys.objects tr
INNER JOIN sys.objects tbl
ON (tr.parent_object_id = tbl.object_id
AND tbl.name = 'SomeTableName')
INNER JOIN information_schema.tables sch
ON (tbl.name = sch.table_name)
WHERE tr.type IN ('TR', 'TA')
ПРИМЕЧАНИЕ: значениями type_desc являются CLR_TRIGGER и SQL_TRIGGER соответственно.