Проблему решил следующим образом. Выполняю всего один Execute, в который передаю строку со всеми данными
SET XACT_ABORT ON - откатывает транзакции в случае если даже в одной операции возникает ошибка,
по дефолту стоит OFF. В принципе можно и на исключения сделать проверяя @Error, но с абортом кодаменьше
.
Вопрос конечно остался открытым, но время для сдачи задачи поджимает некогда копаться. Если кто-то что то нароет буду очень благодарен. Всем спасибо кто пытался помочь.
BEGIN TRANSACTION PROV
SELECT TOP 1 ''
FROM GAAP.dbo.GAAP WITH (TABLOCKX,HOLDLOCK)
SELECT TOP 1 ''
FROM GAAP.dbo.GAAP_DAY WITH (TABLOCKX,HOLDLOCK)
SET DATEFORMAT dmy;
EXEC InsertJournalEntries_Kor
1, 99, 1, 5377, 364, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 840, 59.92, 59.92,
'{"O","0","0","32550","0","0"," 595790CEN"}', '04.06.08', 'Начисление резерва по продажнику',
23.7473, 'CEN', 'Administrator', 0
SET DATEFORMAT dmy;
EXEC InsertJournalEntries_Kor
1, 98, 1, 5377, 364, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 59.92, 59.92,
'{"O","0","0","32550","0","0"," 595790CEN"}', '04.06.08', 'Начисление резерва по продажнику',
23.7473, 'CEN', 'Administrator', 0
SET DATEFORMAT dmy;
EXEC InsertJournalEntries_Kor
1, 97, 1, 5377, 364, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 840, 59.92, 59.92,
'{"O","0","0","32550","0","0"," 595790CEN"}', '04.06.08', 'Начисление резерва по продажнику',
23.7473, 'CEN', 'Administrator', 0
COMMIT TRANSACTION PROV
SELECT [RecId], [Flag], [AccountGAAP_D], [RefObj_D1], [RefObj_D2], [RefObj_D3], [RefObj_D4], [RefObj_D5], [AccountGAAP_K], [RefObj_K1], [RefObj_K2], [RefObj_K3], [RefObj_K4], [RefObj_K5], [Currency], [Summa_Currency], [Summa], [Doc_ID], [Date_In], [Comments], [Kurs], [Application], [UserName], [IsStorno], [InserStamp]
FROM [GAAP].[dbo].[GAAP]