没有begin tran的存储过程中@@ trancount值为1

时间:2015-08-21 06:45:15

标签: sql-server

我有以下存储过程的定义:

CREATE procedure dbo.ImportData
 (                
     @SessionId VARCHAR(20)
    ,@ImportId      int
) 

as 

begin
 PRINT 'TRANCOUNT value = ' + CAST(@@TRANCOUNT AS VARCHAR)
begin try

--business log

begin try
BEGIN CATCH

--business log

END CATCH
END

每当我运行我的SP时,我的@@ Trancount值为1但是我没有使用BEGIN TRAN语句开始任何事务。

请建议sql server在SP定义的BEGIN语句之后创建转换的这种行为。

此外,当我尝试通过创建另一个没有参数且只有一个SELECT语句的SP来复制相同的行为,但我将Transition值设置为0。

请提出这个概念。

1 个答案:

答案 0 :(得分:0)

您已经开通了交易(可能是意外)。 尝试断开与sql-server或commit(rollbcack)现有事务的连接。