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


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

Обновлен: Ноябрь 2007

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

w3stskz6.alert_note(ru-ru,VS.90).gifСовет.

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

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

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

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

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

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

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

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

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

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

INSERT INTO archivetitles 
   (title_id, title, type, pub_id)
SELECT title_id, title, type, pub_id
FROM titles
WHERE (pub_id = '0766')
w3stskz6.alert_note(ru-ru,VS.90).gifПримечание.

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

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

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

w3stskz6.alert_caution(ru-ru,VS.90).gifВнимание!

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

w3stskz6.alert_note(ru-ru,VS.90).gifПримечание.

Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих параметров или выпуска. Для изменения параметров в меню Сервис выберите команду Импорт и экспорт параметров. Дополнительные сведения см. в разделе Параметры Visual Studio.

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

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

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

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

    w3stskz6.alert_note(ru-ru,VS.90).gifПримечание.

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

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

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

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

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

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

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

    w3stskz6.alert_note(ru-ru,VS.90).gifПримечание.

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

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

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

См. также

Другие ресурсы

Типы запросов

Конструирование запросов и представлений