Blokada wierszy

0

Witam,

Chciałbym zablokować użytkownikowi edycję oraz usuwania konkretnych rekordów z bazy. Transakcje odpadają ze względu na długi czas blokady (kilka dni), a nie chciałbym dopuścić do niespodziewanych rollback'ów podczas np. zerwania połączenia czy coś. Zwykłe pola w bazie 0-1 też mi nie wystarczą. Postanowiłem więc stworzyć triggera:

CREATE TRIGGER zmiana
ON TABELA
INSTEAD OF update 
AS
BEGIN
	If (SELECT Id_pole FROM inserted) = 2
      BEGIN
	      raiserror('Nie można edytować tego rekordu.', 12, 1)
		  RETURN
      END

	UPDATE TABELA
    SET
    pole2 = INSERTED.pole2
    FROM INSERTED
    WHERE INSERTED.Id_pole = TABELA.Id_pole
END

Problem polega teraz na tym, że chciałbym zdjąć blokadę z tego rekordu w pewnym momencie. Rekordów, które są w danym momencie zablokowane może być wiele. Załóżmy, że chciałbym zdjąć blokadę z jednego z nich. Jak to najlepiej rozwiązać mając takiego triggera? Może wywołanie jakiejś funkcji z parametrem, na podstawie której modyfikowany jest trigger (blokowane rekordy). Szukam jakiegoś optymalnego pomysłu jak to wykonać.

0

Wygląda na dubel:

Blokada wierszy

Padła tam też odpowiedź, dodatkowa kolumna zablokowane.

1 użytkowników online, w tym zalogowanych: 0, gości: 1