Действительно ли возможно получить все триггеры, связанные с таблицей с помощью программирования сброса SQL-сервера 2008 года?

Действительно ли возможно использовать .NET (C# SQL CLR) для нахождения всех триггеров связанными с таблицей?

И также я смогу определить тип того триггера? - CLR или T-SQL?

Спасибо, Chaks

1
задан skaffman 5 October 2010 в 10:47
поделиться

2 ответа

Ну, у нас есть SQL Server Management Objects, включая Database.Triggers, или вы всегда можете использовать некоторые команды T-SQL из .NET и посмотреть на некоторые системные представления, такие как sys.triggers, если у вас есть права.

1
ответ дан 3 September 2019 в 00:10
поделиться

Вы можете сделать это с помощью запроса к системным таблицам. Что-то вроде следующего:

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 соответственно.

1
ответ дан 3 September 2019 в 00:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: