Forum
Merhaba,
Sql server'da 2 adet tabloyu aynı anda update yapmak istiyorum. Syntax yapısından dolayı bunu gerçekleştiremiyorum, TRY..CATCH açarak Transaction içerisinde 2 tablo içinde Update komutlarını ayrı ayrı yazarak süreci tamamlamak çözüm olarak forumlarda önerilmiş. Ama tek komutta şu işi tamamlamak TRY..CATCH TRANSACTION açmakla uğraşmadan direk bu işlemi gerçekleştirmek istiyorum. Bu konu hakkında yardımlarınızı rica ederim.
İyi çalışmalar.
Update
go
update
go
denedinizmi ?
Birol abi dönüşün için teşekkür ederim.
Dediğinize benzer mantıkda en sağlıklı güncellemeyi aşağıda verdiğim örnekle yapılabiliyor. Olası bir durumda herhangi bir güncelleme çalışmaz ise catch'e düşüp rollback yaparak kayıt bozukluğunun önünede geçebiliyorsunuz. Sizin aşina olduğunuz koddan örnek vereyim..
BEGIN TRY
BEGIN TRANSACTION
UPDATE E SET E.TRCODE=5 FROM
LG_001_01_EMFICHE E INNER JOIN
LG_001_01_EMFLINE L ON E.LOGICALREF=L.ACCFICHEREF
WHERE E.LOGICALREF=336
--================================================
UPDATE L SET L.TRCODE=5 FROM
LG_001_01_EMFICHE E INNER JOIN
LG_001_01_EMFLINE L ON E.LOGICALREF=L.ACCFICHEREF
WHERE E.LOGICALREF=336
COMMIT
END TRY
BEGIN CATCH
ROLLBACK
END CATCH
Buraya kadar herşey güzel, benim istediğim 2 tabloyada aynı anda Update işlemini gerçekleştirip işlemi tamamlamak. Tamamen tembelliğe kaçmaya çalışıyorum. 🙂
İyi çalışmalar.
aşadaki şekilde yapabiliyorsun
UPDATE LG_800_ITEMS SET SPECODE='DENMEE' WHERE LOGICALREF=2
UPDATE LG_800_CLCARD SET SPECODE='DENMEE' WHERE LOGICALREF=2
bence çok kasma 🙂 , ha illa kascam diyorsan o zaman join yerine subquery yada cursor kullan.