Insert Update SQL Server üzerinde saklı proc
Eğer bir kayıt varsa, bir güncelleme yapacak bir saklı proc yazdım, başka bir ekleme yapacaktır. Şöyle bir şey:
update myTable set Col1=@col1, Col2=@col2 where ID=@ID
if @@rowcount = 0
insert into myTable (Col1, Col2) values (@col1, @col2)
Bu şekilde yazmaya arkasındaki mantık güncelleme where örtülü seçeneğini kullanarak yapacak ve eğer 0 dönerse o zaman Ekle gerçekleşecek.
Bunu bu şekilde yapmak için bir alternatif seçin ve sonra da bir satır güncelleştirme veya ekleme yapmak döndü sayısına bağlı olacaktır. Ben bunu yapmak eğer 2 neden olacak bir güncelleme seçer çünkü verimsiz (ilk açık ara seçeneğini seçin ve ikinci güncellemenin nerede, örtülü) olarak kabul edilir. Eğer proc bir ekleme yapmak olsaydı o zaman verimlilik farkı kalmazdı.
Benim mantığım burada ses? Bir ekleme birleştirin ve bir saklı yordam içine update istiyorsunuz?
CEVAP
Lütfen okuyun kullanabileceğiniz güvenli bir model için post on my blog. Konularla ilgili bir yeri vardır, ve bu soru kabul cevabı güvenli olmaktan çok uzak.
Hızlı bir cevap için aşağıdaki desen deneyin. İyi 2000 ve üzeri SQL üzerinde çalışacak. Hata diğer seçenekleri açar taşınmasını sağlar ve 2008 SQL 2005 bir BİRLEŞTİRME emrini verir.
begin tran
update t with (serializable)
set hitCount = hitCount 1
where pk = @id
if @@rowcount = 0
begin
insert t (pk, hitCount)
values (@id,1)
end
commit tran
SQL Server üzerinde INSERT VEYA UPDATE...
Tablonun kimlik sütunu için açık bir d...
&; gıt update-server-bilgi&; Github de...
Bir Check dize SQL Server bir dize içe...
ElasticSearch server üzerinde tüm dizi...