Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 ENABLE-DISABLE TRIGGER  [new]
vah
Member

Откуда:
Сообщений: 2649
Где можно увидеть что триггер ENABLE или DISABLE?

Заранее благодарен.
11 авг 09, 14:59    [7523247]     Ответить | Цитировать Сообщить модератору
 Re: ENABLE-DISABLE TRIGGER  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
select name from sys.triggers
where is_disabled=1

Картинка с другого сайта.
11 авг 09, 15:01    [7523268]     Ответить | Цитировать Сообщить модератору
 Re: ENABLE-DISABLE TRIGGER  [new]
vah
Member

Откуда:
Сообщений: 2649
Knyazev Alexey
select name from sys.triggers
where is_disabled=1

Картинка с другого сайта.


а в MSSQL2000?
11 авг 09, 15:03    [7523287]     Ответить | Цитировать Сообщить модератору
 Re: ENABLE-DISABLE TRIGGER  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
SELECT OBJECTPROPERTY(OBJECT_ID(N'ИмяТриггера',N'TR'),'ExecIsTriggerDisabled');
11 авг 09, 15:06    [7523302]     Ответить | Цитировать Сообщить модератору
 Re: ENABLE-DISABLE TRIGGER  [new]
ChA
Member

Откуда: Москва
Сообщений: 10985
OBJECTPROPERTY ( id , 'ExecIsTriggerDisabled' ) ?
11 авг 09, 15:09    [7523322]     Ответить | Цитировать Сообщить модератору
 Re: ENABLE-DISABLE TRIGGER  [new]
trigger_disabled
Guest
vah,

status в sysobjects
11 авг 09, 15:10    [7523329]     Ответить | Цитировать Сообщить модератору
 Re: ENABLE-DISABLE TRIGGER  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
trigger_disabled
vah,

status в sysobjects


разве?
11 авг 09, 15:14    [7523359]     Ответить | Цитировать Сообщить модератору
 Re: ENABLE-DISABLE TRIGGER  [new]
trigger_disabled
Guest
Knyazev Alexey
trigger_disabled
vah,

status в sysobjects


разве?

select * from sysobjects s
where type = 'TR' and s.[status]&2048 = 2048
А разве нет? ;)
11 авг 09, 15:19    [7523398]     Ответить | Цитировать Сообщить модератору
 Re: ENABLE-DISABLE TRIGGER  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
trigger_disabled
Knyazev Alexey
trigger_disabled
vah,

status в sysobjects


разве?

select * from sysobjects s
where type = 'TR' and s.[status]&2048 = 2048
А разве нет? ;)


к сожалению в 2000ого под рукой нет,
но начиная с 2005ого поле статус во вьюшке sysobjects у всех 0
11 авг 09, 15:22    [7523423]     Ответить | Цитировать Сообщить модератору
 Re: ENABLE-DISABLE TRIGGER  [new]
trigger_disabled
Guest
Knyazev Alexey
разве?

Для проверки, набросал только что
if object_id('test','U') is not null drop table test

create table test(id int, tst varchar(100))
go
create trigger [dbo].[trg_test] 
   on [dbo].[test] for insert, update, delete
as
return
go
--*/
select * from sysobjects s where s.[type] = 'TR' and s.[name] = 'trg_test'
select status&2048 from sysobjects s where s.[type] = 'TR' and s.[name] = 'trg_test'

alter table test disable trigger all
select * from sysobjects s where s.[type] = 'TR' and s.[name] = 'trg_test'
select status&2048 from sysobjects s where s.[type] = 'TR' and s.[name] = 'trg_test'
alter table test enable  trigger all
if object_id('test','U') is not null drop table test 
11 авг 09, 15:22    [7523428]     Ответить | Цитировать Сообщить модератору
 Re: ENABLE-DISABLE TRIGGER  [new]
ENABLE-DISABLE TRIGGER
Guest
vah
Где можно увидеть что триггер ENABLE или DISABLE?

Извиняюсь, немного оффтоп, но.
Нужно следующее:
пользователь выполняет
alter table test disable trigger all
........ некоторые действия
alter table test enable trigger all
Хочется сделать так, чтобы для всех остальных пользователей, работающих в системе в период между disable trigger all и enable trigger all, триггера отрабатывали.
варианты отключения триггеров программно для конкретного пользователя (сессии) я знаю, блокировать таблицу эксклюзивно не хочу.
Интересует только принципиальная возможность - можно так или нет. Если же таки можно - куда посмотреть.
11 авг 09, 15:24    [7523438]     Ответить | Цитировать Сообщить модератору
 Re: ENABLE-DISABLE TRIGGER  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36800
Триггер или работает для всех, или не работает ни для кого. Хотите "отключать" - программьте логику триггера.
11 авг 09, 15:26    [7523453]     Ответить | Цитировать Сообщить модератору
 Re: ENABLE-DISABLE TRIGGER  [new]
trigger_disabled
Guest
Knyazev Alexey
к сожалению в 2000ого под рукой нет,
но начиная с 2005ого поле статус во вьюшке sysobjects у всех 0
Автор спрашивал про 2000 - я и ответил. А в 2005 поле is_disabled в sys.triggers смотрится куда информативней :)
11 авг 09, 15:26    [7523454]     Ответить | Цитировать Сообщить модератору
 Re: ENABLE-DISABLE TRIGGER  [new]
Glory
Member

Откуда:
Сообщений: 104760
ENABLE-DISABLE TRIGGER
Хочется сделать так, чтобы для всех остальных пользователей, работающих в системе в период между disable trigger all и enable trigger all, триггера отрабатывали.
варианты отключения триггеров программно для конкретного пользователя (сессии) я знаю, блокировать таблицу эксклюзивно не хочу.
Интересует только принципиальная возможность - можно так или нет. Если же таки можно - куда посмотреть.

С такой постановкой задачи тела самих триггеров должны содержать проверку на разрешение/запрет срабатывания
11 авг 09, 15:26    [7523457]     Ответить | Цитировать Сообщить модератору
 Re: ENABLE-DISABLE TRIGGER  [new]
ENABLE-DISABLE TRIGGER
Guest
Гавриленко Сергей Алексеевич
Триггер или работает для всех, или не работает ни для кого. Хотите "отключать" - программьте логику триггера.
Такое решение сейчас и есть. Просто интересно.
Спасибо!
11 авг 09, 15:27    [7523464]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить