Mahesh nie ma racji, sugerując, że nie można zmieniać danych w widoku. Tak jest z poglądem Patricka
CREATE View vw_user_profile AS
Select A.user_id, B.profile_description
FROM tbl_user A left join tbl_profile B on A.user_id = b.user_id
MOGĘ zaktualizować dane ... na przykład mogę zrobić jedno z poniższych ...
Update vw_user_profile Set profile_description='Manager' where user_id=4
lub
Update tbl_profile Set profile_description='Manager' where user_id=4
Nie możesz WSTAWIĆ do tego widoku, ponieważ nie wszystkie pola w całej tabeli są obecne i zakładam, że PROFILE_ID jest kluczem podstawowym i nie może mieć wartości NULL. Jednak czasami możesz WSTAWIĆ do widoku ...
Utworzyłem widok na istniejącej tabeli za pomocą ...
Create View Junk as SELECT * from [TableName]
NASTĘPNIE
Insert into junk (Code,name) values
('glyn','Glyn Roberts'),
('Mary','Maryann Roberts')
i
DELETE from Junk Where ID>4
W tym przypadku zadziałały zarówno INSERT, jak i DELETE
Oczywiście nie można aktualizować żadnych pól, które są agregowane lub obliczane, ale każdy widok, który jest tylko widokiem prostym, powinien być aktualizowany.
Jeśli widok zawiera więcej niż jedną tabelę, nie można wstawiać ani usuwać, ale jeśli widok jest podzbiorem tylko jednej tabeli, zwykle jest to możliwe.