СКЛ Сервера 2005 ново интодуцед на начин за враћање трансакција у СКЛ Сервер 2005
СЕТ КСАЦТ_АБОРТ НА
када је на КСАЦТ_АБОРТ. Тхе Т-СКЛ изјаве ће аутоматски уназад вратити трансакцију када грешке у извештајима.
СЕТ КСАЦТ_АБОРТ НА
УПОТРЕБА Емп
Бегин Тран
Убаците у ЕмпИнфо вредности(1)
Убаците у ЕмпИнфо вредности(1) — Ова изјава ће подићи примарни кључну грешку
Убаците у ЕмпИнфо вредности(2)
Цоммит Тран
Прва линија Статмент ће извршити без икаквих грешака. Примарни кључ грешка ће подићи у другом реду. Али цео блок трансакција неће бити посвећене јер је КСАЦТ_АБОРТ у на.
Требало би напоменути да КСАЦТ_АБОРТ престане тренутни * * серије, не цела команда. Пакети су одвојени са ГО кључну реч. Извршење ће наставити почетком следећег серије.
Ова функција је такође у СКЛ Сервер 2000, мада се понаша мало другачије за различите грешке.
У СКЛ 2000, постоје случајеви у којима КСАЦТ_АБОРТ не аутоматски уназад вратити трансакцију.
На пример:
Убацивање у неважећим називом колони.
Убацивање у примарни кључ са ИДЕНТИТИ_ИНСЕРТ ОФФ.
Извршавања СЕЛЕЦТ која користи непостојеће УДФ.
Ове врсте грешака су обично због лоше аутор команде, па не јављају у дан у дан операције вашег програма, осим ако неко мења шему. Али ја објаснити њиховом могућност када је био аутор сценарија базе података када успостављају нову верзију пројекта, Само у случају распоређивање не иде по плану.
Постоје начини да се баве таквим грешке. Ваша ПОСВЕТИ треба да буде у серији извођења ДМЛ изјаве. Афтер пакету (после ГО кључну реч) можете да проверите@@ТРАНЦОУНТ да видимо да ли је већи од нуле и деловати у складу са. Обично роллбацк трансакцију.
Трансакције могу спан серије, тако да можете да извршите враћање у наредној серији.