我读到许多人在程序开始时倾向于{{#link-to 'accounts.devices' tagName='li' disabled=true class='dropdown'}}
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Devices<span class="caret"></span></a>
<ul class="dropdown-menu">
{{#link-to 'accounts.devices.devices1' tagName='li'}}<a href={{view.href}}>Devices 1</a>{{/link-to}}
{{#link-to 'accounts.devices.devices2' tagName='li'}}<a href={{view.href}}>Devices 2</a>{{/link-to}}
</ul>
{{/link-to}}
。
SET XACT_ABORT ON
由于运行时错误将终止该过程,CREATE PROC myProc
AS
Begin
BEGIN TRAN
SET XACT_ABORT ON
[..code1 that might throw an error..]
[..code2..]
SET XACT_ABORT OFF [?]
COMMIT TRAN
END
SET XACT_ABORT OFF [?]
将保留为SET XACT_ABORT
。我有一些问题:
你在哪里设置它?在ON
定义之前,CREATE PROC
之后或BEGIN
之后? BEGIN TRAN
处于连接级别,所以我认为这三个都没有区别?
如果错误发生时,SET
何时转为OFF
?
答案 0 :(得分:1)
在CREATE PROC定义之前设置XACT_ABORT没有多大意义。与ANSI_NULLS或QUOTED_IDENTIFIER不同,此选项不存储为存储过程的属性。我会说你应该在CREATE PROC myProc AS
之后或第一个BEGIN
之后立即设置XACT_ABORT,你也可以在那里设置SET NOCOUNT。
我不打算关闭XACT_ABORT。如果任何代码部分需要关闭它(例如,在忽略某些错误的TRY-CATCH块内),它应该在特定的TRY块内设置它,并在END CATCH结束时重新设置它。
有关详细信息,请参阅:http://www.sommarskog.se/error_handling/Part1.html