Vždy se provádí úprava maximálně nad třeba tabulkama v jedné transakci, těch transakcí mám několik.
Něco jako toto :
DECLARE ZMENY CURSOR
KEYSET
FOR SELECT UDALOST, OBJE_ID_POMOCNE, OBJE_ID
FROM tabulka
OPEN ZMENY
FETCH NEXT FROM ZMENY INTO @UDALOST, @OBJE_ID_POMOCNE, @OBJE_ID ´
WHILE (@@fetch_status <> -1)
BEGIN
BEGIN TRAN
INSERT INTO [tabulka1]
([UZIVATEL], [OBJE_ID_POMOCNE], [OBJE_ID])
SELECT @UDALOST, @OBJE_ID_POMOCNE, @OBJE_ID
INSERT INTO [tabulka2]
([UZIVATEL], [OBJE_ID_POMOCNE], [OBJE_ID])
SELECT @UDALOST, @OBJE_ID_POMOCNE, @OBJE_ID
IF (@@ERROR <> 0)
BEGIN
ROLLBACK TRAN
END
ELSE
BEGIN
COMMIT TRAN
END
BEGIN TRAN
INSERT INTO #xp_results_polo
EXEC [Everend2006].[dbo].[SQL_SQL] @OBJE_ID
SET @ID_OBJE_OBJE = (SELECT TOP 1 ID FROM #xp_results_polo)
IF (@@ERROR <> 0)
BEGIN
ROLLBACK TRAN
END
ELSE
BEGIN
IF @ID_OBJE_OBJE > 0
BEGIN
COMMIT TRAN
END
ELSE
BEGIN
ROLLBACK TRAN
END
END
FETCH NEXT FROM ZMENY INTO @UDALOST,@OBJE_ID_POMOCNE
END
CLOSE ZMENY
DEALLOCATE ZMENY