Bir kayıt varsa güncelleme yapacak depolanmış bir işlem yazdım, aksi takdirde ekleme yapacak. Şuna benzer:
update myTable set Col1=@col1, Col2=@col2 where ID=@ID
if @@rowcount = 0
insert into myTable (Col1, Col2) values (@col1, @col2)
Bunu bu şekilde yazmanın arkasındaki mantığım, güncellemenin where cümlesini kullanarak örtük bir seçim gerçekleştireceği ve eğer 0 döndürürse, eklemenin gerçekleşeceği.
Bunu bu şekilde yapmanın alternatifi, bir seçim yapmak ve ardından bir güncelleme yapmak veya eklemek için döndürülen satırların sayısına bağlı olarak olabilir. Bunun verimsiz olduğunu düşündüm çünkü bir güncelleme yapacaksanız, 2 seçime neden olacaktır (ilk açık seçim çağrısı ve güncellemenin bulunduğu yerde ikinci örtük). İşlemci bir ekleme yapacak olsaydı, verimlilikte hiçbir fark olmazdı.
Mantığım burada mı? Bir eklenti ve güncellemeyi depolanan bir işlemde böyle mi birleştirirsiniz?