26 Nisan 2013 Cuma

MSSQL Kayıt varsa UPDATE yoksa INSERT yapmak‏

Bu işlem için 2 yöntem izlenebilir. Bu yöntemlere bir gözatalım.

Yöntem 1-)

string sorgu = @"UPDATE Tablo1 SET Kolon1 = @Kolon1_Degeri WHERE ID = @ID
IF @@ROWCOUNT = 0
BEGIN
INSERT INTO Tablo1 (Kolon1) VALUES (@Kolon1_Degeri)
END";

Burada öncelikle update işlemi gerçekleşiyor.ROWCOUNT = 0 ise demekki güncellenecek kayıt yok o zamanda yeni kayıt işlemi gerçekleşiyor..






Açıklama :
Burada öncelikle update işlemi gerçekleşiyor.ROWCOUNT = 0 ise demekki güncellenecek kayıt yok o zamanda yeni kayıt işlemi gerçekleşiyor..



Yöntem 2-)

string sorgu = @" IF EXISTS(SELECT ID FROM Tablo1 WHERE ID = @ID)
BEGIN
UPDATE Tablo1 SET Kolon1= @Kolon1_Degeri WHERE ID = @ID
END
ELSE
BEGIN
INSERT INTO Tablo1 (ID, Kolon1) VALUES (@ID, @Kolon1_Degeri)
END";


Açıklama:
Bu Yöntemde ise öncelikle kaydın var olup olmadığı belirleniyor.Kayıt varsa Güncelleme Yoksa Ekleme yapıyor.


Örnek SQL Cümle : (Yöntem 2 ye göre düzenlenmiştir.
 
IF EXISTS(SELECT ID FROM elektrik WHERE ID = 2)
BEGIN
UPDATE elektrik SET T1= '999' WHERE ID = 2
END
ELSE
BEGIN
INSERT INTO elektrik (T1, T2, T3) VALUES (999,999,999)
END
Açıklama: 
Örnek cümlede ID Numara değeri 2 olan satır varmı diye bakıyor, varsa update cümlesi çalışacak yokise insert cümlesi çalışacaktır.

Hiç yorum yok:

Yorum Gönder