Sql 视图或函数';部门20';不可更新,因为修改会影响多个基表
为什么我得到的视图或函数“Dept20”不可更新,因为修改会影响多个基表Sql 视图或函数';部门20';不可更新,因为修改会影响多个基表,sql,sql-server,Sql,Sql Server,为什么我得到的视图或函数“Dept20”不可更新,因为修改会影响多个基表 create view Dept20 as select j.kojab as employe_id ,p.nama as employee ,j.gapok from jabatan j, pegawai p where j.kojab = p.Kojab and j.kojab = 4 当我想删除 delete from Dept20 where employee = 'rojib2' 我得到一个错误: Msg
create view Dept20
as select j.kojab as employe_id ,p.nama as employee ,j.gapok
from jabatan j, pegawai p
where j.kojab = p.Kojab
and j.kojab = 4
当我想删除
delete from Dept20
where employee = 'rojib2'
我得到一个错误:
Msg 4405,16级,状态1,第2行
视图或函数“Dept20”不可更新,因为修改
影响多个基表
我需要帮助…您遇到的概念(由于错误)被调用。基本上,数据库服务器本身无法确定应该删除什么,因为从视图到相关基表的反向映射是模糊的。正如注释中所指出的,您可以研究如何在视图上定义一个INSTEAD OF触发器。2一件事,使用内部联接而不是使用+的语法进行联接,第二件事是,如果您想更新它,您需要的不是触发器,您不能从视图中删除,因为一个基表可能匹配多个视图行。