SQL-запрос вставки нескольких записей - PullRequest
1 голос
/ 27 августа 2010

как я могу вставить несколько записей, используя один оператор SQL

Ответы [ 4 ]

3 голосов
/ 27 августа 2010

Для SQL Server 2005 вы могли бы сделать следующее:

INSERT INTO your_table (id, field_1, field_2)
   SELECT 1, 'some-data-a', 'some-data-1'
   UNION ALL
   SELECT 2, 'some-data-b', 'some-data-2'
   UNION ALL
   SELECT 3, 'some-data-c', 'some-data-3'
   UNION ALL
   SELECT 4, 'some-data-d', 'some-data-4';

В большинстве современных СУБД, включая SQL Server 2008 и MySQL 5, вы можете использовать гораздо более точный синтаксис:

INSERT INTO your_table (id, field_1, field_2) VALUES
   (1, 'some-data-a', 'some-data-1'),
   (2, 'some-data-b', 'some-data-2'),
   (3, 'some-data-c', 'some-data-3'),
   (4, 'some-data-d', 'some-data-4');
0 голосов
/ 27 августа 2010

Вы также можете вставить несколько записей из подзапроса.

INSERT INTO TABLE (col1, col2) (select a,b from SUB)
0 голосов
/ 27 августа 2010

Вы должны использовать типы таблиц и использовать массовую вставку.

EDIT: http://msdn.microsoft.com/en-us/library/bb510489.aspx

Это может объяснить в дальнейшем использование любого из них. Это работает для сервера SQL, я не очень уверен насчет других баз данных. Оба очень полезны для многих записей, которые будут вставлены за один раз.

0 голосов
/ 27 августа 2010

Использование MySQL:

INSERT INTO TABLE (col1, col2) VALUES
  (val1a, val1b),
  (val2a, val2b),
  (valNa, valNb);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...