Tsql 为什么DataAdapter没有收到触发器引发的错误
我在处理更新操作的视图上有一个触发器。当我使用MS Management Studio并执行插入操作时,会出现以下错误:Tsql 为什么DataAdapter没有收到触发器引发的错误,tsql,sql-server-2008,triggers,dataadapter,Tsql,Sql Server 2008,Triggers,Dataadapter,我在处理更新操作的视图上有一个触发器。当我使用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 '
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.rowUpdate上有一个事件处理程序,但此操作没有错误。插入或删除也未捕获任何错误
发生了什么事情来防止我在应用程序中收到错误?您是否尝试获取问题/答案中的输出:?我从未尝试在那里添加事件处理程序。非常感谢。我已经离开了那份工作,但我可能会再次遇到类似的情况。