Подзапрос SELECT в операторе INSERT позволяет добавить к таблице данные из одной или нескольких других таблиц или представлений, причем несколько строк одновременно.
Подзапрос SELECT в операторе INSERT применяется для добавления к таблице существующих данных, тогда как конструкция VALUES в операторе INSERT используется для добавления к таблице новых данных.
Оператор SELECT INTO позволяет создать новую таблицу и заполнить ее результатами оператора SELECT. Конструкция INTO оператора SELECT более подробно обсуждается в занятии 1.
Добавление во вставленные строки данных типа ntext, text и image
В SQL Server предусмотрено несколько методов добавления в строку значений типа ntext, text или image:
Компоненты SQL Server для массового копирования позволяют вставлять в таблицу или представление, а также извлекать из таблицы, представления или запроса большое число строк. Массовое копирование - самый быстрый способ добавления большого числа строк к SQL Server. Операции массового копирования подробно обсуждаются в главе 7.
После создания таблицы и ее заполнения данные можно изменять или обновлять. SQL Server предоставляет несколько методов изменения данных в существующей таблице:
- оператор UPDATE;
API базы данных и курсоры;
- оператор UPDATETEXT.
Обновление работает как с таблицами, так и с представлениями (с некоторыми ограничениями).
Оператор UPDATE способен изменять данные в одной строке, группе строк или во всех строках таблицы или представления. Его также применяют для обновления строк на удаленном сервере с помощью имени связанного сервера или функции OPENROWSET, OPENDATASOURCE или OPENQUERY (если компонент доступа OLE DB, используемый для доступа к удаленному серверу, поддерживает обновление). Оператор UPDATE, который ссылается на таблицу или представление, может изменять данные только в одной таблице в каждый отдельный момент.
SET задает столбцы, которые следует изменить, и их новые значения. Во всех строках, которые соответствуют условию поиска, заданному конструкцией WHERE, значения заданных полей обновляются значениями, заданными в конструкции SET. Если конструкция WHERE не задана, обновляются все строки.
Например, показанный далее оператор UPDATE включает конструкцию SET, которая увеличивает цену книг в таблице NewBooks на 10%: