Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 视图或函数';部门20';不可更新,因为修改会影响多个基表_Sql_Sql Server - Fatal编程技术网

Sql 视图或函数';部门20';不可更新,因为修改会影响多个基表

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

为什么我得到的视图或函数“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 4405,16级,状态1,第2行

视图或函数“Dept20”不可更新,因为修改 影响多个基表


我需要帮助…

您遇到的概念(由于错误)被调用。基本上,数据库服务器本身无法确定应该删除什么,因为从视图到相关基表的反向映射是模糊的。正如注释中所指出的,您可以研究如何在视图上定义一个INSTEAD OF触发器。

2一件事,使用内部联接而不是使用+的语法进行联接,第二件事是,如果您想更新它,您需要的不是触发器,您不能从视图中删除,因为一个基表可能匹配多个视图行。