Ошибка SQL «бескомпромиссная транзакция обнаруживается в конце партии» без транзакций на БДC#

Место общения программистов C#
Ответить
Anonymous
 Ошибка SQL «бескомпромиссная транзакция обнаруживается в конце партии» без транзакций на БД

Сообщение Anonymous »

Я сталкиваюсь с следующей проблемой в разных точках моего кода.
SQLexception возвращается из DB (SQL Server) с сообщением «Умлемая транзакция обнаружена в конце партии. Транзакция откатается» назад » После вызова хранимой процедуры. Структура сохраненной процедуры следует по этому примеру: < /p>

USE [EXAMPLE_DB]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[sp_ExampleStoredProcedure]
@Parameter INT, @AnotherParameter INT

AS
BEGIN
BEGIN TRY

SET NOCOUNT ON;

DECLARE @Variable INT;
DECLARE @AnotherVariable CHAR;
DECLARE @ErrMsg VARCHAR;

SET @ErrMsg = '';

/*Doing Some Stuff Here (Select, IF-THEN, etc...)

/* I call another stored procedure */
EXECUTE [dbo].[sp_SecondStoredProcedure]
@Param = 'Blabla'
,@Param2 = 'BlaBlaBla'

/*Here I handle some custom output parameters from second stored
procedure to handle errors */

/* Other stuff here */

END TRY

BEGIN CATCH
SET @CustomExitCode = 'XXXXX';
SET @ErrMsg = (SELECT ERROR_MESSAGE());
END CATCH;

END
< /code>

Как вы можете видеть, внутри хранимой процедуры нет обработки транзакций.
I Обработка кода транзакции (C#) с использованием класса TransactionScope, вызывая различные хранимые процедуры внутри внутри Область транзакции, включая приведенный выше (который не удастся). < /p>

Вопрос: почему SQL говорит о вырсовавшейся транзакции, если у меня нет транзакций SQL -сторона, но Только блок с промежуткой, со всеми обрабатываниями транзакций, выполненных в коде? Ошибка, но везде есть обработка транзакций на стороне SQL, на самом деле. Очевидно, доступно для дальнейшей информации. < /p>

Большое спасибо за вашу помощь! < /p>

Ура,
gabriele < /p>

Подробнее здесь: https://stackoverflow.com/questions/238 ... without-tr
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»