Количество транзакций после выполнения указывает на несоответствие числа операторов BEGIN и COMMIT. Предыдущий отсчет = 0, Текущий отсчет = 1
я получаю эту ошибку
может ли кто нибудь сказать мне в чем здесь ошибка Я новичок в sp
заранее спасибо
Количество транзакций после выполнения указывает на несоответствие числа операторов BEGIN и COMMIT. Предыдущий отсчет = 0, Текущий отсчет = 1
Код:
НАЧИНАЙ ПРОБОВАТЬ
НАЧИНАЙ ТРАН
Если( @iHId =0)
Если он не существует(выберите HDR.AOHId от dbo.tblXHdrApplicationOptions режим HDR внутреннее соединение ДБО.tblXDtlApplicationSuper ДТЛ на HDR.AOHId = DTL.ASDHId
где именно DTL.ASDChildName=@strChildName )
НАЧАТЬ
Вставить в dbo.tblXHdrApplicationOptions (AOHRootIndex, AOHRootName,AOHUser, AOHDateTime)
Значения (@iRootIndx, @strRootName,@strUserName, GETDATE())
Объявить @iAOHId INT
SET @iAOHId = SCOPE_IDENTITY();
Вставить в dbo.tblXDtlApplicationSuper ( ASDHId , ASDChildName,ASDIsEOMYN,ASDIsEachPayYN,ASDYearsIfEomIsYes,ASDUser,ASDDateTime)
Значения(@iAOHId, @strChildName,@bIsEomYN,@bEachPayYN,@strYearifEOMisYes, @strUserName, GETDATE())
Объявить @ASDHId INT
SET @ASDHId = SCOPE_IDENTITY();
Вставить в tblXDtlApplicationSuperdetails (ASDDHID, ASDDChildName,ASDDMonthCode, ASDDEOMDate,ASDDUser,ASDDDateTime)
Значения (@iAOHId, @strChildName,@strMonthCode, @dtpEOMDate,@strUserName,GETDATE())
ОБЪЯВИТЬ @ASDDHID INT
SET @iAOHId = SCOPE_IDENTITY()
СОВЕРШИТЬ ТРАН
Возвращает 0
КОНЕЦ
ЕЩЕ
Если существует(выберите HDR.AOHId от dbo.tblXHdrApplicationOptions режим HDR внутреннее соединение ДБО.tblXDtlApplicationSuper ДТЛ на HDR.AOHId = DTL.ASDHId
где именно DTL.ASDChildName=@strChildName )
--
НАЧАТЬ
Обновление набора dbo.tblXHdrApplicationOptions
AOHDateTime = GETDATE();
Обновление dbo.tblXDtlApplicationSuper SET ASDIsEOMYN=@bIsEomYN ,ASDIsEachPayYN=@bEachPayYN ,
ASDYearsIfEomIsYes=@strYearifEOMisYes ,ASDUser = @strUserName, ASDDateTime = GETDATE()
Где ASDHId = @iHId ;
Обновление tblXDtlApplicationSuperdetails SET ASDDChildName=@strChildName,ASDDMonthCode=@strMonthCode,
ASDDEOMDate=@dtpEOMDate,ASDDUser=@strUserName,ASDDDateTime=GETDATE() где ASDDHID=@iAOHId
СОВЕРШИТЬ ТРАН
Возвращает 0
КОНЕЦ
КОНЕЦ ПОПЫТКИ
НАЧИНАЙ ЛОВИТЬ
ОТКАТ ТРАНА;
Объявить @ErrorMessage NVARCHAR(4000),
@ErrorSeverity INT,@ErrorState INT;
SET @ErrorMessage ='-1'+ERROR_MESSAGE();
SET @ErrorSeverity = ERROR_SEVERITY();
SET @ErrorState = ERROR_STATE();
RAISERROR(@ErrorMessage,@ErrorSeverity,@ErrorState);
КОНЦЕВАЯ ЗАДВИЖКА