Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

T-SQL ALTER VIEW Изменение представления

Роман Protocol Мыслитель (8562), закрыт 6 лет назад
Всем привет!
Нужно изменить в представлении «Неотгруженные заказы» статус заказа (Shipment) статус с 0 на 1 (1 значит отгружен) для клиента Antonio Moreno Taqueria.
Как это можно сделать через ALTER VIEW?
Спасибо за ответы!
ALTER VIEW Ne_Otgruzeno(Shipment)
SELECT O.Shipment
FROM Orders O
INNER JOIN Customers C ON O.CustomerID = C.CustomerID
WHERE C.CompanyName = 'Antonio Moreno Taqueria'
Дополнен 6 лет назад
Тоже не работает.

ALTER VIEW Ne_Otgruzeno
SET O.Shipment = '1'
FROM Orders O
INNER JOIN Customers C ON O.CustomerID = C.CustomerID
WHERE C.CompanyName = 'Antonio Moreno Taqueria'
Лучший ответ
Дед Мазай Гений (58109) 6 лет назад
Я не понял задачу.
1. Очень странно создавать представление с такой узкой выборкой. В на звании представления не отражено, что оно только для одного клиента.
2. SQL подразделяется на DML и DDL. Все разновидности ALTER - это DDL. Все операции с данными - это DML. Единственное исключение - это truncate table - вроде операция с данными, но относится к DDL.
3. Представления, содержащие JOIN, считаются необновляемыми. Это по стандарту. Про MS SQL не знаю, может там какие-то расширения на эту тему. Представления обновляются так же, как таблицы: при помощи insert и update.
Роман ProtocolМыслитель (8562) 6 лет назад
Согласен, задача странная. Мы отбираем в представление неотгруженные заказы. И там не должно быть столбика состояние заказа (отгружен / не отгружен) так как все заказы неотгружены. А потом в представлении неотгруженные заказы нужно сделать, чтобы появился отгруженный заказ. Странно.
Дед Мазай Гений (58109) > Мы отбираем в представление неотгруженные заказы Нет такого условия в описании вопроса. Есть условие на компанию (клиента). Наверно, запрос Ne_Otgruzeno написан неверно.
Остальные ответы
Похожие вопросы