Практическое руководство. Создание запросов вставки результатов
Обновлен: Ноябрь 2007
Запрос вставки результатов позволяет копировать строки внутри таблицы или из одной таблицы в другую. Например, с помощью запроса вставки результатов можно скопировать сведения о названиях книг некоторого издателя из таблицы titles в другую таблицу, которая будет ему доступна. Запрос вставки результатов похож на запрос создания таблицы, но копирует строки в уже существующую таблицу.
Совет. |
---|
Строки можно скопировать из одной таблицы в другую методом вырезания и вставки. Создайте запрос для каждой таблицы и запустите их. Скопируйте нужные строки из одной сетки результатов в другую. |
При создании запроса вставки результатов необходимо указать следующее.
Таблицу базы данных, куда нужно скопировать строки (целевую таблицу).
Таблицу или таблицы, из которых копируются строки (исходную таблицу). Исходная таблица или таблицы становятся частью вложенного запроса. При копировании данных внутри таблицы целевая таблица совпадает с исходной.
Столбцы в исходной таблице, содержимое которых нужно скопировать.
Столбцы в целевой таблице, в которые нужно скопировать данные.
Условия поиска для выборки строк, которые нужно скопировать.
Порядок сортировки, когда нужно скопировать строки в определенном порядке.
Параметры группировки для случаев, когда нужно скопировать только сводные данные.
Например, следующий запрос копирует сведения о названиях книг из таблицы titles в архивную таблицу archivetitles. Запрос копирует содержимое четырех столбцов для всех названий, принадлежащих указанному издателю:
INSERT INTO archivetitles
(title_id, title, type, pub_id)
SELECT title_id, title, type, pub_id
FROM titles
WHERE (pub_id = '0766')
Примечание. |
---|
Чтобы вставить значения в новую строку, используйте запрос вставки значений. |
Можно скопировать содержимое всех или только выбранных столбцов в строке таблицы. В любом случае, копируемые данные должны быть совместимы со столбцами целевой таблицы. Например, при копировании содержимого столбца price столбец, куда копируются данные, должен допускать числовые данные с десятичным разделителем. При копировании всей строки физическое положение совместимых столбцов целевой и исходной таблицы должно совпадать.
При создании запроса вставки результатов внешний вид области критериев меняется, отражая параметры, доступные для копирования данных. Добавляется столбец "Добавить" позволяющий указать столбцы, в которые необходимо скопировать данные.
Внимание! |
---|
Результат выполнения запроса вставки результатов отменить нельзя. В целях предосторожности перед выполнением запроса рекомендуется создать резервную копию данных. |
Примечание. |
---|
Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих параметров или выпуска. Для изменения параметров в меню Сервис выберите команду Импорт и экспорт параметров. Дополнительные сведения см. в разделе Параметры Visual Studio. |
Для создания запроса вставки результатов
Создайте новый запрос и добавьте таблицу, из которой нужно скопировать строки (исходную таблицу). При копировании строк внутри таблицы в качестве целевой таблицы нужно указать исходную.
В меню Конструктор запросов выберите пункт Изменить тип, а затем пункт Вставить результаты.
В диалоговом окне Выбор целевой таблицы для вставки результатов выберите таблицу, в которую нужно скопировать строки (целевую таблицу).
Примечание. Конструктор запросов и представлений не может заранее определить, какие таблицы и представления можно обновить. Поэтому список Имя таблицы в диалоговом окне Выбор целевой таблицы для вставки результатов содержит все доступные таблицы и представления в запрашиваемом соединении с данными (даже те, в которые нельзя скопировать строки).
В прямоугольнике, представляющем таблицу или возвращающий табличное значение объект, выберите имена столбцов, содержимое которых нужно скопировать. Чтобы скопировать строки целиком, выберите * (все столбцы).
Конструктор запросов и представлений добавляет выбранные столбцы в Столбец в области Критерии.
В столбце Добавить в области критериев выберите столбец в целевой таблице для каждого копируемого столбца исходной таблицы. Если строка копируется целиком, выберите tablename.*. Столбцы в исходной и целевой таблице должны иметь одинаковые или совместимые типы данных.
Чтобы скопировать строки в определенном порядке, укажите порядок сортировки. Дополнительные сведения см. в разделе Сортировка и группировка результатов запроса.
Определите, какие строки необходимо скопировать, указав условие в столбце Фильтр. Дополнительные сведения см. в разделе Практическое руководство. Указание условий поиска.
Если условия поиска не заданы, в целевую таблицу будут скопированы все строки исходной таблицы.
Примечание. При добавления столбца для поиска в область критериев конструктор запросов и представлений также включит его в список столбцов, подлежащих копированию. Если столбец нужно использовать только для поиска, но не для копирования, снимите флажок рядом с именем столбца в прямоугольнике, который представляет таблицу или возвращающий табличное значение объект.
Чтобы скопировать сводные данные, укажите параметры Group By. Дополнительные сведения см. в разделе Сводка по результатам запроса.
Результат выполнения запроса вставки результатов не отображается в области Результаты. Вместо этого появляется сообщение о количестве скопированных строк.