O altă opțiune este să testați că valorile din înregistrarea pe care o modificați sunt încă la fel ca atunci când ați început:
SELECT
customer_nm,
customer_nm AS customer_nm_orig
FROM demo_customer
WHERE customer_id = @p_customer_id
(afișați câmpul client_nm și utilizatorul îl modifică)
UPDATE demo_customer
SET customer_nm = @p_customer_name_new
WHERE customer_id = @p_customer_id
AND customer_name = @p_customer_nm_old
IF @@ROWCOUNT = 0
RAISERROR( 'Update failed: Data changed' );
Nu trebuie să adăugați o coloană nouă în tabel (și să o actualizați), dar trebuie să creați mai multe instrucțiuni SQL detaliate și să treci noi și vechi la procedura memorată.
De asemenea, are avantajul că nu închideți înregistrările - pentru că știm cu toții că înregistrările vor rămâne blocate când nu ar trebui să fie ...