Heim >Datenbank >MySQL-Tutorial >sqlserver 中 raiserror 如何才能回滚 事务呢?

sqlserver 中 raiserror 如何才能回滚 事务呢?

WBOY
WBOYOriginal
2016-06-07 15:39:312238Durchsuche

在子存储过程中,用raiserror('msg',16,1)的方式弹出了一个自定义错误, 在父存储过程中可以显示错误,但是执行的时候没有回滚父级的 事务 ,这个需要进行别的什么配置吗? 如果在子存储过程1中出错,会输出错误,但是不会回滚主存储过程。 1 begin tran 2 3

在子存储过程中,用raiserror('msg',16,1)的方式弹出了一个自定义错误,

在父存储过程中可以显示错误,但是执行的时候没有回滚父级的事务,这个需要进行别的什么配置吗?

如果在子存储过程1中出错,会输出错误,但是不会回滚主存储过程。

<span> 1</span> <span>begin</span> <span>tran</span>
<span> 2</span> 
<span> 3</span>    <span>exec</span><span> 子存储过程1
</span><span> 4</span>    <span>exec</span><span> 子存储过程2
</span><span> 5</span>    <span>exec</span><span> 子存储过程3
</span><span> 6</span>    <span>exec</span><span> 子存储过程4
</span><span> 7</span> 
<span> 8</span> <span>if</span> <span>@@error</span><span></span><span>0</span>
<span> 9</span>     <span>rollback</span> <span>tran</span>
<span>10</span> <span>else</span>
<span>11</span>      <span>commit</span> <span>tran</span>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn