Предложение INTO (Transact-SQL)

Изменения: 15 сентября 2007 г.

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

Значок ссылки на разделСоглашения о синтаксисе в Transact-SQL

Синтаксис

[ INTO new_table ]

Аргументы

  • new_table
    Имя новой таблицы, создаваемой на основе столбцов, указанных в списке выбора, и строк, выбираемых предложением WHERE. Формат аргумента new_table определяется путем расчета выражений, указанных в списке выбора. Столбцы в таблице, указанной в аргументе new_table, создаются в порядке, соответствующем списку выбора. Все столбцы таблицы, указанной в аргументе new_table, получают такие же имена, типы данных и значения, которые указаны в соответствующем выражении в списке выбора.

    Если в список выбора входит вычисляемый столбец, соответствующий столбец новой таблицы не будет вычисляемым. Значениями нового столбца становятся значения, вычисленные при выполнении инструкции SELECT...INTO.

    Объем информации, записываемой в журнал при определенных массовых операциях, в том числе SELECT...INTO, зависит от модели восстановления, заданной для базы данных. Дополнительные сведения см. в разделе Обзор моделей восстановления.

    ms188029.note(ru-ru,SQL.90).gifПримечание.
    В выпусках SQL Server, предшествующих SQL Server 2000, создание постоянной таблицы при помощи инструкции SELECT INTO возможно только в случае, если установлен параметр select into/bulkcopy. Однако в SQL Server 2000 и более поздних выпусках параметр базы данных select into/bulkcopy больше не влияет на возможность создания постоянной таблицы с помощью инструкции SELECT INTO.

Замечания

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

Инструкция SELECT INTO не может использоваться для создания секционированной таблицы, даже если исходная таблица является секционированной. Инструкция SELECT INTO не использует схему секционирования исходной таблицы. Вместо этого в файловой группе по умолчанию создается новая таблица. To insert rows into a partitioned table, you must first create the partitioned table and then use the INSERT INTO…SELECT FROM statement.

Инструкцию SELECT...INTO нельзя использовать вместе с предложением COMPUTE.

Примеры

В следующем примере таблица dbo.EmployeeAddresses создается путем выбора семи столбцов из различных таблиц, описывающих сотрудников и адреса.

USE AdventureWorks;
GO
SELECT c.FirstName, c.LastName, e.Title, a.AddressLine1, a.City, sp.Name AS [State/Province], a.PostalCode
INTO dbo.EmployeeAddresses
FROM Person.Contact AS c
JOIN HumanResources.Employee AS e ON e.ContactID = c.ContactID
JOIN HumanResources.EmployeeAddress AS ea ON ea.EmployeeID = e.EmployeeID
JOIN Person.Address AS a on a.AddressID = ea.AddressID
JOIN Person.StateProvince as sp ON sp.StateProvinceID = a.StateProvinceID;
GO

См. также

Справочник

SELECT (Transact-SQL)
Примеры использования инструкции SELECT (Transact-SQL)

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

Добавление строк с использованием SELECT INTO

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

15 сентября 2007 г.

Добавления
  • В примечания добавлены сведения о секционированной таблице.
  • Добавлен раздел «Примеры».