Вставка нескольких строк в одном SQL-запросе?
Я сталкиваюсь с проблемой, когда мне нужно вставить несколько строк данных в таблицу с помощью 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 ответ(ов)
В 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');
Таким образом, вы можете эффективно добавлять несколько записей за один запрос, что может существенно упростить ваши операции с базой данных.
Если вы вставляете данные в одну таблицу, вы можете написать свой запрос следующим образом (возможно, это работает только в MySQL):
INSERT INTO table1 (First, Last)
VALUES
('Фред', 'Смит'),
('Джон', 'Смит'),
('Майкл', 'Смит'),
('Роберт', 'Смит');
Этот подход позволяет вставить несколько строк за один раз, что может значительно повысить производительность по сравнению с отдельными запросами на вставку.
INSERT
операторы, использующие синтаксис VALUES
, могут вставлять несколько строк. Для этого необходимо указать несколько списков значений для столбцов, каждый из которых заключён в круглые скобки и разделён запятыми.
Пример:
INSERT INTO tbl_name (a, b, c) VALUES (1, 2, 3), (4, 5, 6), (7, 8, 9);
"Вставка результатов хранимой процедуры в временную таблицу"
Как экранировать одинарную кавычку в SQL Server?
Как выполнить оператор UPDATE с JOIN в SQL Server?
Функция против Хранимой процедуры в SQL Server
Следует ли мне использовать != или <> для обозначения "не равно" в T-SQL?