Tek bir SQL sorgusunda birden fazla satır ekleme?

Tek seferde eklenecek birden fazla veri kümem var, örneğin 4 satır. Tablomda üç sütun var: Kişi, Kimlik ve Ofis.

INSERT INTO MyTable VALUES ("John", 123, "Lloyds Office");
INSERT INTO MyTable VALUES ("Jane", 124, "Lloyds Office");
INSERT INTO MyTable VALUES ("Billy", 125, "London Office");
INSERT INTO MyTable VALUES ("Miranda", 126, "Bristol Office");

Tek bir SQL deyiminde 4 satırın tümünü ekleyebilir miyim?

SQL Server 2008'de tek bir SQL INSERT deyimi kullanarak birden fazla satır ekleyebilirsiniz.

INSERT INTO MyTable ( Column1, Column2 ) VALUES
( Value1, Value2 ), ( Value1, Value2 )

Bununla ilgili referans için MOC Kursu 2778A - SQL Server 2008'de SQL Sorguları Yazma'ya göz atın.

Örneğin:

INSERT INTO MyTable
  ( Column1, Column2, Column3 )
VALUES
  ('John', 123, 'Lloyds Office'), 
  ('Jane', 124, 'Lloyds Office'), 
  ('Billy', 125, 'London Office'),
  ('Miranda', 126, 'Bristol Office');
Yorumlar (13)

Tek bir tabloya ekleme yapıyorsanız, sorgunuzu şu şekilde yazabilirsiniz (belki sadece MySQL'de):

INSERT INTO table1 (First, Last)
VALUES
    ('Fred', 'Smith'),
    ('John', 'Smith'),
    ('Michael', 'Smith'),
    ('Robert', 'Smith');
Yorumlar (10)

NOT: Bu yanıt SQL Server 2005 içindir. SQL Server 2008 ve sonrası için, diğer cevaplarda görüldüğü gibi çok daha iyi yöntemler vardır.

SELECT UNION ALL ile INSERT]1 kullanabilirsiniz:

INSERT INTO MyTable  (FirstCol, SecondCol)
    SELECT  'First' ,1
    UNION ALL
SELECT  'Second' ,2
    UNION ALL
SELECT  'Third' ,3
...

Yalnızca küçük veri kümeleri için, sizin 4 kaydınız için sorun olmayacaktır.

Yorumlar (0)