Почему DataAdapter не получает ошибку, вызванную триггером - PullRequest
1 голос
/ 31 июля 2009

У меня есть триггер в представлении, которое обрабатывает операции обновления. Когда я использую MS Management Studio и делаю вставку, я получаю эту ошибку:

Msg 50000, Level 16, State 10, Procedure Trigger_TempTableAttr_Lot_UpdateDelete, Line 166
Violation of UNIQUE KEY constraint 'UK_Lot_LotAccountCode'. Cannot insert duplicate key in object 'app.Lot'.
Msg 3616, Level 16, State 1, Line 1
An error was raised during trigger execution. The batch has been aborted and the user transaction, if any, has been rolled back.

Вот что у меня в триггере:

BEGIN TRY
    EXEC(@UpdateSQL)
END TRY
BEGIN CATCH
        SELECT 
            @ErrorMessage = ERROR_MESSAGE(),
            @ErrorSeverity = ERROR_SEVERITY(),
            @ErrorState = ERROR_STATE();
        RAISERROR (@ErrorMessage, -- Message text.
                   16, -- Severity.
                   10 -- State.
        );
        RETURN
END CATCH

CREATE TRIGGER[dbo].[Trigger_TempTableAttr_Lot_UpdateDelete] ON [dbo].[TempTableAttr_Lot]
INSTEAD OF UPDATE, INSERT, DELETE
AS
BEGIN

Ошибка в начале этого никогда не отправляется в DataAdapter, он молча терпит неудачу. У меня есть обработчик событий на DataAdapter.RowUpdated, но нет ошибки для этой операции. Для INSERT или DELETE ошибок не обнаружено.

Что может помешать мне получить ошибку в приложении?

...