MSSQL’de tabloda var olan kayıtlar üzerinde güncelleme veya değişiklik yapmak için UPDATE komutu kullanılır. UPDATE komutu ile çalışabilmek için daha öncesinde böyle bir tablomuzun oluşturulmuş olması gerekir.
UPDATE komutundan sonra hangi tablo ile çalışılacaksa o tablonun adı yazılır. SET ifadesinden sonra ise tablomuz üzerinde yapılacak değişiklik, WHERE ifadesinden sonra ise güncelleme (değişiklik) hangi kayıtlar üzerinde yapılacaksa onun şartı yazılır. Kullanım şekli aşağıdaki gibidir.
1 | UPDATE tablo_adi SET yapilacak_guncelleme WHERE yapilacak_kayitlar; |
WHERE ifadesi UPDATE komutu kullanılırken verileriniz için hayati öneme sahiptir. Herhangi bir şart belirtilmemesi durumunda yani WHERE ifadesi yazılmadığında tüm kayıtlarınız etkilenir. Eğer Transaction başlatılmadıysa hatanızı telafi etmenin tek yolu varsa veritabanı yedeklerinize başvurmaktır.
Aynı anda birden çok alanda güncelleme işlemi (çoklu alan güncellemesi) gerçekleştirilecek ise SET ifadesinden sonra yapılacak işlemler aralarına virgüller koyularak yapılır.
1 | UPDATE tablo_adi SET alan1=deger1, alan2=deger2, alan3=deger3 WHERE sart_ifadesi; |
Örneğin, işe başlama tarihi boş olan personellerin işe başlama tarihini bugünün tarihi olarak güncelleyin işleminde işe başlama tarihine bugünün tarihini aktarma işlemi SET ifadesinden sonra, işe başlama tarihi boş olan kayıtların kontrolü WHERE ifadesinden sonra yazılır.
Yukarıdaki personel tablosunda personel numarası, adı ve soyadı alanları boş değer alamazken, işe başlama tarihi alanı boş değer alabilmektedir.
INSERT komutu ile veri ekleme işlemleri kodla gerçekleştirilebileceği gibi hızlı uygulama yapmak için kayıt girişlerinde SQL SERVER arayüzü de kullanılabilir. Kayıt girilecek tabloya sağ tıklanır ve Edit Top 200 Rows seçilir.
Personel tablomuzda SELECT komutu kullanılarak içeriği listelendi ve 2 adet kaydın boş değer (NULL) içerdiği görülmektedir. İşe başlama tarihinin boş olmasını ifade etmek için NULL kavramı kullanılır.
Bugünün tarihini ’27.11.2017’ kabul edersek güncelleme işlemini aşağıdaki gibi yapabiliriz.
1 | UPDATE personel SET ise_baslama_tarihi='2017.11.27' WHERE ise_baslama_tarihi is NULL; |
Ancak bu şekilde kullandığımızda çok profesyonel bir kullanım olmayacaktır. Bugünün tarihini elde etmek için GETDATE() fonksiyonu kullanılabilir. GETDATE() sistemden o günün tarihini almaktadır.
1 | UPDATE personel SET ise_baslama_tarihi=GETDATE() WHERE ise_baslama_tarihi is NULL; |
MSSQL Update Örnekleri
- 2015 yılından sonra işe başlayan personellerin maaşını 2000 TL, prim alanını 100 TL olarak güncelleyin.1UPDATE personel SET maas=2000, prim=100 WHERE ise_baslama_tarihi>='2015.01.01';
- 2500 TL’den fazla maaş ve 200TL’den az prim alan personellerin primini 50TL arttırın.1UPDATE personel SET prim=prim+50 WHERE maas>2500 AND prim<200;
- İşe başlama tarihi 2015 öncesi veya primi 300 TL’nin altında olanların maaşına 50 TL zam yapın.12UPDATE personel SET maas=maas+50WHERE ise_baslama_tarihi<'2015.01.01' or prim<300;