Tek sorgu cümlesi ile birden fazla satırı eklemek(insert) T-SQL (MSSQL MySQL)

Tek sorgu cümlesi ile birden fazla satırı eklemek(insert) etmek T-SQL (MSSQL MySQL)

Uygulama geliştirirken farklı metodlar yardımı ile elinizdeki kaynakları verimli kullanmanız gerekebiliyor. Projeniz küçük ise bunu göz ardı etmeniz veya bu durumu fark etmemeniz de mümkün. Fakat uygulamanız büyüdüğünde bu bir zorunluluk haline geliyor.

Yoğun Transaction gerçekleşen SQL tablolarında kısa sürede çok fazla insert işlemi gerçeleştiriyorsanız bu veriyi toplu olarak insert etmeniz hız ve kaynak kullanımı açısından daha verimli olacaktır.
Bunu yapmanın birden fazla yöntemi mevcut, bu yazıda ki konumuz T-SQL cümlesi ile nasıl yapabileceğiniz.

Aşağıdaki komutlar MySQL ve MSSQL için çalıştırılabilir.

Aşağıdaki gibi bir tablomuzun olduğunu varsayalım.

CREATE TABLE ornekTablo 
(
	id INT NOT NULL,
	isim VARCHAR(50) NOT NULL,
	deger1	VARCHAR(50) NOT NULL,
	deger2 VARCHAR(50) NOT NULL
)

Normal şartlarda yazdığımız Insert sorgusu aşağıdaki gibi olacaktır.

INSERT INTO ornekTablo
  	(id, isim, deger1, deger2)
 VALUES
 	(100, 'Kayıt 100', 'deger1 -> 100', 'deger2 -> deger1');

Çok kısa süre içerisinde(1 – 5 MS) yukarıdaki sorguya benzer sorguları çalıştırıyorsanız. Sorgular bir süre sonra uzun sürmeye başlayacaktır.


Aşağıdaki yöntem ile kısa zamanda biriken yüzlerce veriyi daha kısa sorgu süreleri ile topluca eklemeniz mümkün.

INSERT INTO ornekTablo
  	(id, isim, deger1, deger2)
 VALUES
	(101, 'Kayıt 101', 'deger1 -> 101', 'deger2 -> deger1'),
	(102, 'Kayıt 102', 'deger1 -> 102', 'deger2 -> deger1'),
	(103, 'Kayıt 103', 'deger1 -> 103', 'deger2 -> deger1'),
	(104, 'Kayıt 104', 'deger1 -> 104', 'deger2 -> deger1'),
	(105, 'Kayıt 105', 'deger1 -> 105', 'deger2 -> deger1');