20 EYLÜL 2008, CUMARTESİ
SQL Server üzerinde INSERT VEYA UPDATE için çözümler
MyTable(KEY, datafield1, datafield2...)
bir tablo yapısı varsayalım.
Genellikle, eğer öyle olsaydı zaten varolan bir kaydı güncelleştirmek veya yeni bir kayıt eklemek istiyorum.
Aslında:
IF (key exists)
run update command
ELSE
run insert command
Bu yazmak için en iyi performans gösteren yolu nedir?
CEVAP
28 EKİM 2008, Salı
Benim detailed answer to a very similar previous question bkz
@Beau Crawford's Eğer rep verme varsa first guy to SO it gitmeli ama SQL 2005 yılında iyi bir şekilde ve aşağıda. Tek sorun ekler için hala iki IO işlemleri.
MS Sql2008 tanıtır SQL merge
: 2003 standardı:
merge tablename as target
using (values ('new value', 'different value'))
as source (field1, field2)
on target.idfield = 7
when matched then
update
set field1 = source.field1,
field2 = source.field2,
...
when not matched then
insert ( idfield, field1, field2, ... )
values ( 7, source.field1, source.field2, ... )
Şimdi gerçekten sadece bir IO işlemi, ama kötü kod :-(
Bunu Paylaş:
Insert Update, ınsert veya update olma...
Insert Update SQL Server üzerinde sakl...
Tablonun kimlik sütunu için açık bir d...
Otomatik oluşturmak SQL Server tablo i...
Varlık Çerçevesi: &; Store update, ıns...