Создание запросов на вставку результатов (визуальные инструменты для баз данных)
Область применения: SQL Server
Запрос вставки результатов позволяет копировать строки внутри таблицы или из одной таблицы в другую. Например, с помощью запроса вставки результатов можно скопировать сведения о названиях книг некоторого издателя из таблицы 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
столбец, куда копируются данные, должен допускать числовые данные с десятичным разделителем. При копировании всей строки физическое положение совместимых столбцов целевой и исходной таблицы должно совпадать.
При создании запроса вставки результатов внешний вид панели критериев меняется, отражая параметры, доступные для копирования данных. Добавляется столбец «Добавить» позволяющий указать столбцы, в которые необходимо скопировать данные.
Внимание
Результат выполнения запроса вставки результатов отменить нельзя. В целях предосторожности создайте резервную копию данных перед выполнением запроса.
Создание запроса вставки результатов
Создайте новый запрос и добавьте таблицу, из которой нужно скопировать строки (исходную таблицу). При копировании строк внутри таблицы в качестве целевой таблицы нужно указать исходную.
В меню Конструктор запросов выберите пункт Тип изменения, а затем пункт Вставить результаты.
В диалоговом окне Выбор целевой таблицы для инструкции Insert Resultsвыберите таблицу, в которую нужно скопировать строки (целевую таблицу).
Примечание.
Конструктор запросов и представлений не может заранее определить, какие таблицы и представления можно обновить. Поэтому список Имя таблицы в диалоговом окне Выбор целевой таблицы для вставки результатов содержит все доступные таблицы и представления в запрашиваемом подключении к данным (даже те, в которые нельзя скопировать строки).
В прямоугольнике, представляющем таблицу или возвращающий табличное значение объект, выберите имена столбцов, содержимое которых нужно скопировать. Чтобы скопировать строки целиком, выберите * (все столбцы).
Конструктор запросов и представлений добавляет выбранные столбцы к столбцу Столбец панели критериев.
В столбце Добавить на панели критериев выберите столбец в целевой таблице для каждого копируемого столбца исходной таблицы. Если строка копируется целиком, выберите tablename.*. Столбцы в исходной и целевой таблице должны иметь одинаковые или совместимые типы данных.
Чтобы скопировать строки в определенном порядке, укажите порядок сортировки. Дополнительные сведения см. в разделе Результаты запросов сортировки и группирования (визуальные инструменты для баз данных).
Укажите копируемые строки путем ввода условий поиска в столбце Фильтр . Дополнительные сведения см. в разделе Определение критериев поиска (визуальные инструменты для баз данных).
Если условия поиска не заданы, в целевую таблицу будут скопированы все строки исходной таблицы.
Примечание.
При добавления столбца для поиска на панели критериев конструктор запросов и представлений также включит его в список столбцов, подлежащих копированию. Если столбец нужно использовать только для поиска, но не для копирования, снимите флажок рядом с именем столбца в прямоугольнике, который представляет таблицу или возвращающий табличное значение объект.
Чтобы скопировать сводные данные, укажите параметры Group By. Дополнительные сведения см. в разделе Резюмирование результатов запросов (визуальные инструменты для баз данных).
При выполнении запроса "вставка результатов" панель Результатыне отображает никаких сообщений. Вместо этого появляется сообщение о количестве скопированных строк.
См. также
Типы запросов (визуальные инструменты для баз данных)
Разделы по конструированию запросов и представлений (визуальные инструменты для баз данных)