20

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

14

Я сталкиваюсь с проблемой, когда мне нужно вставить несколько строк данных в таблицу с помощью 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");

Вопрос: Могу ли я вставить все 4 строки в одном SQL-запросе?

3 ответ(ов)

27

В SQL Server 2008 можно вставлять несколько строк с помощью одного SQL-запроса INSERT.

Пример синтаксиса:

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

Для получения дополнительной информации вы можете ознакомиться с курсом MOC 2778A - Writing SQL Queries in 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');

Таким образом, вы можете эффективно добавлять несколько записей за один запрос, что может существенно упростить ваши операции с базой данных.

9

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

INSERT INTO table1 (First, Last)
VALUES
    ('Фред', 'Смит'),
    ('Джон', 'Смит'),
    ('Майкл', 'Смит'),
    ('Роберт', 'Смит');

Этот подход позволяет вставить несколько строк за один раз, что может значительно повысить производительность по сравнению с отдельными запросами на вставку.

0

INSERT операторы, использующие синтаксис VALUES, могут вставлять несколько строк. Для этого необходимо указать несколько списков значений для столбцов, каждый из которых заключён в круглые скобки и разделён запятыми.

Пример:

INSERT INTO tbl_name (a, b, c) VALUES (1, 2, 3), (4, 5, 6), (7, 8, 9);
Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь