BEGIN TRAN
DECLARE @p1 int, @p2 int
INSERT INTO Tabela1
(Polje1,
Polje2)
SELECT Abc,
Def
FROM Tabela2
WHERE <neki uslov>
DECLARE cursor1 CURSOR FOR
SELECT Tabela1.Polje1, Tabela1.Polje2
FROM Tabela1
WHERE <neki uslov>
OPEN cursor1
FETCH NEXT From Cursor1
INTO @p1, @p2
WHILE @@FETCH_STATUS =0
BEGIN
<neka obrada podataka>
FETCH NEXT From Cursor1
INTO @p1, @p2
END
CLOSE cursor2
DEALLOCATE cursor2
COMMIT TRAN
E sad, ako tokom dela gde se koristi kurzor dodje do greske, podaci upisani sa INSERT INTO ipak ostanu u bazi (jer u tom delu nije bilo greske). Kako da postignem da sve izmene u bazi (i one sa INSERT INTO, i one unutar kurzorske operacije) budu obuhvacene istom transakcijom?