Поделиться через


Как создавать запросы вставки результатов (визуальные инструменты для баз данных)

Запрос вставки результатов позволяет копировать строки внутри таблицы или из одной таблицы в другую. Например, с помощью запроса вставки результатов можно скопировать сведения о названиях книг некоторого издателя из таблицы titles в другую таблицу, которая будет ему доступна. Запрос вставки результатов похож на запрос создания таблицы, но копирует строки в уже существующую таблицу.

СоветСовет

Строки можно скопировать из одной таблицы в другую методом вырезания и вставки. Создайте запрос для каждой таблицы и запустите их. Скопируйте нужные строки из одной сетки результатов в другую.

При создании запроса вставки результатов необходимо указать следующее.

  • Таблицу базы данных, куда нужно скопировать строки (целевую таблицу).

  • Таблицу или таблицы, из которых копируются строки (исходную таблицу). Исходная таблица или таблицы становятся частью вложенного запроса. При копировании данных внутри таблицы целевая таблица совпадает с исходной.

  • Столбцы в исходной таблице, содержимое которых нужно скопировать.

  • Столбцы в целевой таблице, в которые нужно скопировать данные.

  • Условия поиска для выборки строк, которые нужно скопировать.

  • Порядок сортировки, когда нужно скопировать строки в определенном порядке.

  • Параметры группировки для случаев, когда нужно скопировать только сводные данные.

Например, следующий запрос копирует сведения о названиях книг из таблицы titles в архивную таблицу archivetitles. Запрос копирует содержимое четырех столбцов для всех названий, принадлежащих указанному издателю:

INSERT INTO archivetitles    (title_id, title, type, pub_id)SELECT title_id, title, type, pub_idFROM titlesWHERE (pub_id = '0766')
ПримечаниеПримечание

Чтобы вставить значения в новую строку, используйте запрос вставки значений.

Можно скопировать содержимое всех или только выбранных столбцов в строке таблицы. В любом случае, копируемые данные должны быть совместимы со столбцами целевой таблицы. Например, при копировании содержимого столбца price столбец, куда копируются данные, должен допускать числовые данные с десятичным разделителем. При копировании всей строки физическое положение совместимых столбцов целевой и исходной таблицы должно совпадать.

При создании запроса вставки результатов внешний вид области критериев меняется, отражая параметры, доступные для копирования данных. Добавляется столбец «Добавить» позволяющий указать столбцы, в которые необходимо скопировать данные.

ПредупреждениеВнимание!

Результат выполнения запроса вставки результатов отменить нельзя. В целях предосторожности перед выполнением запроса рекомендуется создать резервную копию данных.

Создание запроса вставки результатов

  1. Создайте новый запрос и добавьте таблицу, из которой нужно скопировать строки (исходную таблицу). При копировании строк внутри таблицы в качестве целевой таблицы нужно указать исходную.

  2. В меню Конструктор запросов выберите пункт Тип изменения, а затем пункт Вставить результаты.

  3. В диалоговом окне Выбор целевой таблицы для вставки результатов выберите таблицу, в которую нужно скопировать строки (целевую таблицу).

    ПримечаниеПримечание

    Конструктор запросов и представлений не может заранее определить, какие таблицы и представления можно обновить. Поэтому список Имя таблицы в диалоговом окне Выбор целевой таблицы для вставки результатов содержит все доступные таблицы и представления в запрашиваемом соединении с данными (даже те, в которые нельзя скопировать строки).

  4. В прямоугольнике, представляющем таблицу или возвращающий табличное значение объект, выберите имена столбцов, содержимое которых нужно скопировать. Чтобы скопировать строки целиком, выберите * (все столбцы).

    Конструктор запросов и представлений добавляет выбранные столбцы в столбец Столбец в области Критерии.

  5. В столбце Добавить в области критериев выберите столбец в целевой таблице для каждого копируемого столбца исходной таблицы. Если строка копируется целиком, выберите tablename.*. Столбцы в исходной и целевой таблице должны иметь одинаковые или совместимые типы данных.

  6. Чтобы скопировать строки в определенном порядке, укажите порядок сортировки. Дополнительные сведения см. в разделе Сортировка и группирование результатов запроса (визуальные инструменты для баз данных).

  7. Определите, какие строки необходимо скопировать, указав условие в столбце Фильтр. Дополнительные сведения см. в разделе Определение критериев поиска (визуальные инструменты для баз данных).

    Если условия поиска не заданы, в целевую таблицу будут скопированы все строки исходной таблицы.

    ПримечаниеПримечание

    При добавления столбца для поиска в область критериев конструктор запросов и представлений также включит его в список столбцов, подлежащих копированию. Если столбец нужно использовать только для поиска, но не для копирования, снимите флажок рядом с именем столбца в прямоугольнике, который представляет таблицу или возвращающий табличное значение объект.

  8. Чтобы скопировать сводные данные, укажите параметры Group By. Дополнительные сведения см. в разделе Формирование итоговых результатов запросов (визуальные инструменты для баз данных).

Результат выполнения запроса вставки результатов не отображается в области Результаты. Вместо этого появляется сообщение о количестве скопированных строк.