首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >存储过程错误的但随后触发最后一节

存储过程错误的但随后触发最后一节
EN

Stack Overflow用户
提问于 2013-10-11 10:58:47
回答 1查看 32关注 0票数 0

我有一个存储过程,它更新一个表,非常标准的insert查询,而该表有一个约束,以确保没有重复的数据可以进入,当过程被重复的数据执行时,它是错误的,但是proc的最后一步执行一个电子邮件存储的proc。即使插入失败,电子邮件也会被发送?我以为这个过程会因为插入错误而停止?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-11 11:29:22

不,这取决于错误的严重程度。如果严重性小于11,则默认情况下SQL server将继续运行。

我发现这篇文章在解释这一点方面做得不错:http://blog.sqlauthority.com/2012/04/26/sql-server-introduction-to-sql-error-actions-a-primer/

如果我是您,我将确保存储过程在事务中使用try/catch块执行所有操作。

例如

代码语言:javascript
运行
复制
BEGIN TRAN
BEGIN TRY
  -- Do insert

  -- send email
END TRY
BEGIN CATCH
  IF @@TRANCOUNT > 0 ROLLBACK TRAN
END CATCH
IF @@TRANCOUNT > 0 COMMIT TRAN
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19316507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档