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

Откуда:
Сообщений: 14
При транзакционной репликации, на подписчике не срабатывают триггера... Понятное дело, это из-за bulk insert. Как-то раньше при настройке репликации, я в системых таблицах прописывал FIRE_TRIGGERS, но хоть убейте не помню в каких. Может кто знает, помогите плиз... Или может какой-то другой способ есть заставить срабатывать триггера при массовых вставках?
18 ноя 09, 23:47    [7947909]     Ответить | Цитировать Сообщить модератору
 Re: Помогите плиз с FIRE_TRIGGERS...  [new]
Le Peace
Member

Откуда: Москва
Сообщений: 8969
А в триггерах не написано "not for replication"?
19 ноя 09, 10:29    [7948924]     Ответить | Цитировать Сообщить модератору
 Re: Помогите плиз с FIRE_TRIGGERS...  [new]
Idaho75
Member

Откуда:
Сообщений: 14
Le Peace
А в триггерах не написано "not for replication"?


Нет, не написано! Вот пример триггера на вставку:

CREATE TRIGGER dbo.TR_dt_ContactIns ON dbo.Contact
FOR INSERT
AS
SET NOCOUNT ON

INSERT  UniversalDB.dbo.dt_Contact (id,ClientID,ContactGroupID,ContractID,TaxID,LastName,FirstName, MidName,Priority,DateNextCall,
        DayNextCallOnBusiness,DayNextCallOffBusiness,FirstUploadNewContacts,PlannedDateOf1stProcessing,RealDateOf1stProcessing,
        ProcessTill,MaxDaysWithoutUpdate,Decease,DeceaseSet,DeceaseVerified,PassportNumber,LoanIssuance,LoanSubjectDescription,
        LoanSubjectValue,LoanPrincipal,NumberOfPaymentsMadeByDeptor,TotalContractedNumberOfMonthl,MonthlyAnnuity,
        StartingOutstandingAmount,StartingDelinquentAmount,StartingDelinquentDays,Completeness,BankAccountNumber,DateOfDebtOccurance,
        ContactPersonID,CM_FullName,Active,ContactStatusId,CurrentDelinquentDays)

SELECT  i.id,i.iClient_id,i.iContactGroup_id,t.tContractID,t.tTaxIdentificationNumber,cast(dbo.ParserLastName(t.tFullName) as nvarchar),cast(dbo.ParserFirstName(t.tFullName) as nvarchar),

        cast(dbo.ParserFathersName(t.tFullName) as nvarchar),i.iContactPriorityNumber,i.dDateTimeOfNextCall,i.bDayOfNextCallOnBusiness,i.bDayOfNextCallOffBusiness,
        i.d1stUploadIntoNewContacts,i.dPlannedDateOf1stProcessing,i.dRealDateOf1stProcessing,i.dProcessTill,i.iMaxDaysWithoutUpdate,i.bDecease,
        i.dDeceaseSet,i.dDeceaseVerified,t.tPassportNumber,i.dLoanIssuance,t.tLoanSubjectDescription,i.fLoanSubjectValue,i.fLoanPrincipal,
        i.iNumberOfPaymentsMadeByDeptor,i.iTotalContractedNumberOfMonthlyPayments,i.fMonthlyAnnuity,i.fStartingOutstandingAmount,
        i.fStartingDelinquentAmount,i.iStartingDelinquentDays,i.iContactCompleteness,t.tBankAccountNumber,i.dDateOfDebtOccurance,
        t.tContactPerson,t.tFullName,i.bActive,i.iContactStatus_id,i.iCurrentDelinquentDays
  FROM inserted i
 INNER JOIN dbo.Contact t ON t.Id = i.Id
19 ноя 09, 10:34    [7948960]     Ответить | Цитировать Сообщить модератору
 Re: Помогите плиз с FIRE_TRIGGERS...  [new]
Le Peace
Member

Откуда: Москва
Сообщений: 8969
select @@version?
19 ноя 09, 10:48    [7949049]     Ответить | Цитировать Сообщить модератору
 Re: Помогите плиз с FIRE_TRIGGERS...  [new]
Idaho75
Member

Откуда:
Сообщений: 14
Le Peace
select @@version?


Microsoft SQL Server 2005 - 9.00.3042.00 (Intel X86) Feb 9 2007 22:47:07 Copyright (c) 1988-2005 Microsoft Corporation Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
19 ноя 09, 10:51    [7949064]     Ответить | Цитировать Сообщить модератору
 Re: Помогите плиз с FIRE_TRIGGERS...  [new]
Glory
Member

Откуда:
Сообщений: 104760
select * from sys.triggers where is_not_for_replication = 1
19 ноя 09, 10:54    [7949086]     Ответить | Цитировать Сообщить модератору
 Re: Помогите плиз с FIRE_TRIGGERS...  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31200
Idaho75
При транзакционной репликации, на подписчике не срабатывают триггера... Понятное дело, это из-за bulk insert. Как-то раньше при настройке репликации, я в системых таблицах прописывал FIRE_TRIGGERS, но хоть убейте не помню в каких. Может кто знает, помогите плиз... Или может какой-то другой способ есть заставить срабатывать триггера при массовых вставках?
При добавлении статьи есть параметр @fire_triggers_on_snapshot

БОЛ
Определяет, выполняются ли реплицируемые пользовательские триггеры при применении исходного моментального снимка. Аргумент fire_triggers_on_snapshot имеет тип nvarchar(5) и значение по умолчанию FALSE. Если указано значение true, пользовательские триггеры выполняются в реплицируемой таблице при применении моментального снимка. Чтобы триггеры были реплицированы, аргумент schema_option должен включать бит 0x100.
19 ноя 09, 11:02    [7949128]     Ответить | Цитировать Сообщить модератору
 Re: Помогите плиз с FIRE_TRIGGERS...  [new]
Idaho75
Member

Откуда:
Сообщений: 14
Glory
select * from sys.triggers where is_not_for_replication = 1


При этом запросе ничего не выбрало!
19 ноя 09, 11:04    [7949157]     Ответить | Цитировать Сообщить модератору
 Re: Помогите плиз с FIRE_TRIGGERS...  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31200
alexeyvg
При добавлении статьи есть параметр @fire_triggers_on_snapshot

БОЛ
Определяет, выполняются ли реплицируемые пользовательские триггеры при применении исходного моментального снимка. Аргумент fire_triggers_on_snapshot имеет тип nvarchar(5) и значение по умолчанию FALSE. Если указано значение true, пользовательские триггеры выполняются в реплицируемой таблице при применении моментального снимка. Чтобы триггеры были реплицированы, аргумент schema_option должен включать бит 0x100.
Для нужной статьи проверьте этот параметр с помощью sp_helparticle
19 ноя 09, 11:09    [7949206]     Ответить | Цитировать Сообщить модератору
 Re: Помогите плиз с FIRE_TRIGGERS...  [new]
Idaho75
Member

Откуда:
Сообщений: 14
Спасибо alexeyvg, изменил @fire_triggers_on_snapshot и все заработало...
19 ноя 09, 12:19    [7949877]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить