-
Здравствуйте, порыскал по форуму, но не нашел. Как выполнить вставку Insert для Microsoft Access сразу нескольких записей. Синтаксис MySQL неподдерживается: ADOCommand1.Text := INSERT INTO table1 ( Name) VALUES ('Вася'), ('Петя'), ('Вова'); ADOCommand1.Execute; Хотелось бы выполнить вставку трех строк одной командой, а не тремя. Такое возможно?
-
> Vladimir_First (05.04.2008 23:45:00) [0]
Примерно так INSERT INTO table1 ( Name) SELECT FROM (SELECT ''Вася'' UNION SELECT 'Петя' UNION SELECT 'Вова')
Не на всех базах подобное работает. А у тебя что религиозное, что ты не хочешь сделать три запроса.
-
> А у тебя что религиозное, что ты не хочешь сделать три запроса.
:)
У меня предвзятое мнение, что одна команда на вставку от клиента серверу выполнится быстрее, чем по одной. Скажите, что я ошибаюсь и, возможно, я поменяю свои религиозные убеждения.
-
> Vladimir_First (06.04.2008 0:01:02) [2]
Групповая вставка конечно быстрее, но какая разница для трех записей, ты даже заметить разницу не сумеешь.
-
Ну это просто банально! Конечно же речь идет не о трех записях! И есть у меня сомнение ,что запрос на объединение нескольких тысяч записей сработает еще хуже, чем покомандная вставка. Как я уже привел пример в MySQL массовая вставка производится одной командой Insert. Есть ли такая возможность в синтаксисе Microsoft Access (ну или хотя бы Microsoft SQL)?
-
> ты даже заметить разницу не сумеешь.
Подписываюсь.
-
> ну или хотя бы Microsoft SQL
тут есть. см. АП (1)
-
> [4] Vladimir_First (06.04.08 00:35) > И есть у меня сомнение ,что запрос на объединение нескольких > тысяч записей сработает еще хуже
А откуда берутся эти тысячи записей? Извне или они уже есть в БД?
|