20 Haziran 2009 Cumartesi

SQL Server ROLLBACK ve @@ERROR Flag

2 aşamadan oluşan bir işlemde birinci başarısız olursa ikinci işleme geçilmesini engellemek isteyebilirsiniz.

O zaman devreye bu rollback ( geri sarma) mevzusu giriyor.

Örnek senaryo;

BEGIN TRANSACTION
--temp db deki temp tabloya tasi
INSERT INTO rollback_table (ProductID,Name)
Select
ProductID, Name
From
tmp_table(NOLOCK)

--yukardaki islem basarili degilse bitir
IF @@ERROR<>0
BEGIN

ROLLBACK
RETURN 0
END
--datalari sil
DELETE FROM tmp_table
COMMIT TRANSACTION

Hiç yorum yok: