it-swarm-ru.tech

Вставить несколько строк в одном запросе SQL?

У меня есть несколько наборов данных для вставки сразу, скажем, 4 строки.

В моей таблице три столбца: Person, Id и Office.

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");

Могу ли я insert все 4 строки в одном SQL statement?

1547
rits

В SQL Server 2008 вы можете вставить несколько строк, используя одну инструкцию SQL INSERT.

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

Для ссылки на это посмотрите курс 2778A MOC - Написание SQL-запросов в SQL Server 2008.

Например:

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

Если вы вставляете в одну таблицу, вы можете написать свой запрос следующим образом (возможно, только в MySQL):

INSERT INTO table1 (First, Last)
VALUES
    ('Fred', 'Smith'),
    ('John', 'Smith'),
    ('Michael', 'Smith'),
    ('Robert', 'Smith');
763
too much php

ПРИМЕЧАНИЕ: Этот ответ предназначен для SQL Server 2005. Для SQL Server 2008 и более поздних версий существуют намного лучшие методы, как видно из других ответов.

Вы можете использовать INSERT with SELECT UNION ALL :

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

Только для небольших наборов данных, что должно быть хорошо для ваших 4 записей.

128
DavGarcia