Единственный способ изменить значение постоянного столбца в представлении, является изменение самого представления. Не имеет смысла запускать инструкции UPDATE в постоянном или вычисленном столбце на представлении, так как это значение не сохраняется физически в любой таблице. Таким образом, вы должны сделать что-то вроде этого:
ALTER VIEW View1 A
Select F1,F2,1 As F3
From TB1
Теперь вы можете быть соблазн поместить этот код в хранимую процедуру. К сожалению, это невозможно, так как DDL statements are not allowed in Stored Procedures. Другим решением является, следовательно, сохранить значение столбца F3 в отдельной таблице и изменить определение представления, чтобы довести значение в поле зрения:
CREATE TABLE F3Column (
Value AS int
)
go
INSERT F3Column VALUES (0)
go
CREATE VIEW View1 AS
select F1, F2, Value AS F3
from TB1, F3Column
go
-- This will allow you to change the value directly on the view:
UPDATE View1 SET F3 = 1
Просто убедитесь, что ваш F3Column стол всегда содержит ровно 1 запись. Если он не содержит записей, View1 всегда будет пустым. Если он содержит более 1 записи, View1 предоставит вам дубликаты.
Вам нужно добавить этот столбец в таблицу. –
На самом деле у меня нет разрешения на добавление столбца в таблицу. –
Почему вы хотите ОБНОВИТЬ ВИД? Я думаю, вы должны изменить свой путь и сделать новый взгляд или использовать этот вид по-другому;). –