我试图在使用Microsoft Server 2005的触发器中放置一个try-catch语句.
BEGIN TRANSACTION
BEGIN TRY
--Some More SQL
COMMIT TRANSACTION
END TRY
BEGIN CATCH
IF (XACT_STATE()) = -1
BEGIN
ROLLBACK TRANSACTION;
END;
END CATCH
Run Code Online (Sandbox Code Playgroud)
问题是,如果try-catch块捕获了某些内容,我不希望触发器失败.目前,我收到错误"交易在触发器中结束.批次已中止." 如果交易失败.如何让触发器优雅地失败?
另外,如果我删除了该事务,我会收到错误"事务在触发器中注定.批处理已中止.".
BEGIN TRY
--Some More SQL
END TRY
BEGIN CATCH
return
END CATCH
Run Code Online (Sandbox Code Playgroud)
有没有办法解决?