Модификация данных

Предложение FOR BROWSE

Создание таблицы на основе выборки

 

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

 

SELECT <Список столбцов>

INTO <Имя новой таблицы>

FROM <Список таблиц>

WHERE <Условие поиска>

 

При использовании данной команды необходимо учесть следующие факторы:

· новая таблица создается только в том случае, если включена опция базы данных select into/bulkcopy;

· если эта опция не установлена, то можно копировать данные во временную таблицу, имя которой начинается со знака # для локальной временной таблицы или начинается знаками ## для глобальной временной таблицы;

· нельзя использовать при написании имени таблицы кириллицу;

· названия столбцов не должны содержать пробелов;

· нельзя создать таблицу на основе запроса, использующего COMPUTE, или внутри пользовательской транзакции.

В следующем примере создается временная таблица #Table1, в которую записываются фамилии клиентов, проживающих в настоящее время в двухместных номерах:

 

SELECT Н.Номер, К.Фамилия

INTO #Table1

FROM Клиент К, Проживает П, Номер Н

WHERE К.Код_клиента = П.Код_клиента

AND П.Номер = Н.Номер

AND Н.Число_мест = 2

AND П.Дата_убытия < GETDATE()

 

 

 

Предложение FOR BROWSE инструкции SELECT используется для чтения таблицы, внутри которой пользователь добавляет, удаляет или обновляет строки. Обычно SQL Server запрещает чтение таблицы, если выполняется модификация данных этой таблицы. Существуют ограничения на содержание других предложений в команде SELECT при использовании предложение FOR BROWSE:

· в таблице, из которой делается выборка данных, должен быть столбец типа Timestamp и уникальный индекс;

· инструкция SELECT не должна содержать оператора UNION;

· предложение FOR BROWSE должно быть последним предложением.

При попытке прочитать модифицируемые другим пользователем строки таблицы с помощью обычно команды SELECT запрос будет отложен на время, равное по умолчанию пяти минутам. Если модификация завершится в течение этого времени, отложенный запрос отобразит необходимые строки таблицы. Если модификация не завершится за время тайм-аута, запрос выполнен не будет.

 

 

 

В SQL Server для изменения данных используются три основные команды или инструкции, которые часто также завывают операторами модификации данных:

· INSERT – добавляет новые строки в таблицу;

· UPDATE – изменяет существующие данные;

· DELETE – удаляет строки из таблицы.