Я хотел бы, чтобы сокращение (если возможно) для вставки нескольких записей в таблицу, которая имеет первичный ключ и свойство IsIdentity. Например, скажем, у меня есть таблица «Люди» со следующими столбцами:
- ID (первичный ключ и идентификация [т.е. автоинкремент])
- Имя (не ноль)
- Электронная почта (не ноль)
Оператор вставки, исключающий столбец идентификатора с автоинкрементом, является абсолютно допустимым, например:
INSERT INTO People VALUES ('George', 'george@email.com')
Но если я хочу вставить несколько значений в одну и ту же инструкцию, в идеале это можно сделать примерно так, когда мне не нужно явно указывать имена столбцов :
INSERT INTO People VALUES (
(auto, 'George', 'george@email.com'),
(auto, 'Mary', 'mary@email.com')
)
Лучшее решение, которое я смог найти, было примерно таким:
INSERT INTO People (
SELECT 'George', 'george@email.com',
UNION ALL
SELECT 'Mary', 'mary@email.com'
)
Полагаю, вы могли бы поспорить, это несколько бессмысленное занятие, но я хотел, чтобы сам запрос был расширяемым вместе с дизайном таблицы. Например, если имя столбца изменилось или было добавлено больше столбцов, мне не пришлось бы менять это повсюду в коде.
Приветствия:)