Sorgu Oluşturmak ve Çeşitlerini Kullanmak-4
Tabloya veri (satır) eklemek için ‘INSERT INTO’ komutu kullanılır.
'INSERT INTO' komutunun genel kullanımı “INSERT INTO Tablo_Adı (Sütun1, Sütun2, Sütun3, …) VALUES (Değer1, Değer2, Değer3, …)” şeklindedir.
‘INSERT INTO’ deyiminden sonra belirtilen sütun isimleri ile ‘VALUES’ deyiminden sonra yazılan değerler aynı sırada olmalıdır.
‘INSERT INTO ... VALUES’ kalıbında ‘VALUES’ yerine ‘SELECT’ deyimi de kullanılabilir.
Veri girişi için değerler yazılırken karakter veya tarih veri tipindeki sütunların değerleri tek tırnak içerisinde yazılmalıdır.
Veri girişi yaparken girilen verilerin tipi, tablodaki sütun tipleri ile aynı olmalıdır.
Veri girişi yapacağımız tablonun (birincil anahtar olan sütunlar hariç) tüm sütunlarına birden veri girişi yapılacaksa eğer tablo adından sonra sütunlar belirtilmeden de ekleme işlemi yapılabilir.
Tabloya yeni bir satır eklerken tüm sütunlar için veri eklemek zorunlu değildir.
Tabloya aynı anda tek bir satır veya birden çok satır eklenebilir fakat aynı anda sadece tek bir tabloya ekleme yapılabilir.
Tabloya aynı anda birden çok satır eklemek için ‘UNION [ALL]‘ deyimi kullanılır.
Tabloya eklenecek verileri kendimiz yazabileceğimiz gibi ekleme yapılacak olan tablo veya veri tabanındaki diğer tablolardaki, hatta sunucu üzerindeki başka bir veri tabanına ait olan tablolardaki verileri kullanarak da ekleme yapılabilir.
Veri eklenirken ‘INSERT INTO’ deyiminden sonra belirtilmeyen sütunlara herhangi bir değer eklenmez, sütun içeriği NULL olur.
Veri eklenirken ilgili sütun değeri olarak NULL yazılarak da tabloya NULL değer ekleme işlemi gerçekleştirilebilir.
Tablo tasarımında NULL değer girilmesine izin verilmeyen sütunlar için mutlaka bir değer girilmelidir.
Tablodaki birincil anahtar durumundaki sütun(lar)a veri girişi yapılamaz (bu kuralın istisnası "Birincil anahtar sütununa veri ekleme" başlığı altında belirtildi); bu sütun(lar)ın alacağı değer SQL Server tarafından otomatik olarak oluşturulur ve sütuna atanır.
Birincil anahtar sütununa veri eklemeye çalışılması SQL Serverin hata döndürmesine sebep olur.
Hesaplatılmış sütunlara veri eklenemez. Bu sütunların içeriği SQL Server tarafından otomatik olarak oluşturulur.
Yabancı anahtar sütunlarına girilen değerlerin referans tabloda bir karşılığının olması gerekir.
Tablo tasarımında varsayılan (default) değer belirtilmiş bir sütun var ise ve yeni satır ekleme işleminde bu sütun için bir değer girilmemiş ise sütunda NULL değer değil, varsayılan değer oluşur.
"SELECT ... INTO ... FROM" deyimi ile aynı anda bir tablo oluşturulup içerine veri eklenebilir. Bu kullanımda SELECT ifadesinden sonra gelen sütunları içeren bir tablo oluşturulur ve select sorgusunun sonucu bu tabloya eklenir.
İstisnai bir durum olarak birincil anahtar sütununa veri ekleme ihtiyacı duyulduğunda geçici olarak tablonun birincil anahtar sütununa veri eklemeye izin verilebilir. Bunun için SET IDENTITY_INSERT '
TabloAdı' ON komutu kullanılır. Ekleme işlemi bittikten sonra SET IDENTITY_INSERT 'TabloAdı' OFF komutu ile iznin kaldırılması unutulmamalıdır.
@@IDENTITY bir sistem değişkenidir ve veri tabanına en son eklenen birincil anahtar değerini içinde barındırırır.
IDENT_CURRENT() fonksiyonu parametre olarak tablo adı alır ve bu tabloya en son eklenen Id değerini döner.