2.6. SELECT INTO Вставка в таблицу

Мы опустили на время секцию INTO, которая идет после SELECT, и позволяет создавать новые таблицы. Это упущение было сделано преднамеренно, чтобы сначала научиться писать запросы на выбору и немного познакомится с секцией WHERE. Теперь, примеры с секцией были INTO будут более интересными, и вы увидите ее мощь и удобство.

Допустим, что нам надо сохранить строки всех Андреев в отдельной таблице для дальнейшего использования. Для этого выполняем следующий запрос:

SELECT * 
INTO tbAndrey
FROM tbPeoples
WHERE vcName='Андрей'

В данном примере создается таблица tbAndrey. Ее не должно существовать, иначе создание будет невозможным. Если такая таблица будет существовать в вашей базе данных, то запрос вернет ошибку, потому что SELECT..INTO не умеет перезаписывать таблицы. Вы должны сами удалять не нужное, гарантируя таким образом, что нужная таблица не будет уничтожена (перезаписана).

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

Теперь мы можем без проблем работать с новой таблицей tbAndrey, потому что она ничем не отличается от всех тех, что мы создали с помощью оператора CREATE TABLE:

SELECT * 
FROM tbAndrey

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

SELECT * 
INTO #tbAndrey
FROM tbPeoples
WHERE vcName='Андрей'

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

Предыдущая глава

SQL – поиск данных

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне