2013-07-16 2 views
0

У меня есть триггер, как показано ниже:Как запустить триггер отдельной таблицы

ALTER TRIGGER [dbo].[areftblSalesDoc] ON [dbo].[tblSalesDoc] 
AFTER INSERT 
AS 
Begin Try 
    INSERT INTO ArefSms 
     (DSIDName, SalesID, CustName, CustCellPhone, Fish, qt, ProdName) 
    SELECT 
     td.DSName, i.SalesID, tc.CustName, tc.CustCellPhone, i.Fish, NULL, NULL 
     FROM inserted i 
     left join tblDistributionStationDesc td on i.DSID = td.DSID 
     left join tblCustomerDesc tc on i.CustomerID = tc.CustID 

End Try 
Begin Catch 

End catch 

Когда триггер не может сохранить что-либо и имеет ошибку tblsalesdoc не может сохранить слишком. Но я не хочу этого.

Что я могу сделать?

+0

Что?!?!? Пожалуйста, объясните - это абсолютно неясно - ***, что вы хотите сделать? «Регулярные» триггеры ** всегда ** привязаны к таблице (если вы не говорите о триггерах DDL, которые записывают такие вещи, как 'CREATE TABLE' и т. Д.) –

+0

В чем ваш вопрос. Пожалуйста, перефразируйте. – Luv

ответ

0

Если вы хотите, чтобы пропустить код запуска в случае ошибки, Вы можете попробовать использовать SAVE TRANSACTION Заявление о

ALTER TRIGGER [dbo].[areftblSalesDoc] ON [dbo].[tblSalesDoc] 
AFTER INSERT 
AS 

SAVE TRANSACTION BeforeInsertInTrigger; 

Begin Try 
    INSERT INTO ArefSms 
     (DSIDName, SalesID, CustName, CustCellPhone, Fish, qt, ProdName) 
    SELECT 
     td.DSName, i.SalesID, tc.CustName, tc.CustCellPhone, i.Fish, NULL, NULL 
     FROM inserted i 
     left join tblDistributionStationDesc td on i.DSID = td.DSID 
     left join tblCustomerDesc tc on i.CustomerID = tc.CustID 

End Try 
Begin Catch 
    ROLLBACK TRANSACTION BeforeInsertInTrigger; 
    RETURN 
End catch 
Смежные вопросы