Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.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 Server:对具有联接的可更新视图执行删除_Sql_Sql Server_Views - Fatal编程技术网

Sql Server:对具有联接的可更新视图执行删除

Sql Server:对具有联接的可更新视图执行删除,sql,sql-server,views,Sql,Sql Server,Views,在SQL中,只要视图只从一个表中选择数据,就可以对视图运行插入和更新。然而,删除似乎不太好用。有人能帮忙吗 以这一观点为例: CREATE VIEW v_MyUpdatableView AS SELECT x.* FROM MyPrimaryTable x LEFT OUTER JOIN AnotherTable y ON y.MyPrimaryTableId = x.Id 我可以对这个视图运行更新和插入,它们很高兴地传递到MyPrimaryTable。 但是,如果我运行删除,

在SQL中,只要视图只从一个表中选择数据,就可以对视图运行插入和更新。然而,删除似乎不太好用。有人能帮忙吗

以这一观点为例:

CREATE VIEW v_MyUpdatableView
AS
    SELECT x.* FROM MyPrimaryTable x
    LEFT OUTER JOIN AnotherTable y ON y.MyPrimaryTableId = x.Id
我可以对这个视图运行更新和插入,它们很高兴地传递到MyPrimaryTable。 但是,如果我运行删除,我会收到以下异常:

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


我只需要创建一个存储过程,从两个表中删除数据。我知道这不太好,但它可以工作或执行逻辑删除,您可以将列更新为“已删除”。

我只需要创建一个存储过程,从两个表中删除数据。我知道它不漂亮,但它可以工作或进行逻辑删除,您可以将列更新为“已删除”。

Quote:

DELETE语句通过分区视图删除一个或多个成员表中的数据。删除语句必须遵守以下规则:

  • 如果存在具有相同视图或任何成员表的自联接,则不允许使用DELETE语句
引用:

DELETE语句通过分区视图删除一个或多个成员表中的数据。删除语句必须遵守以下规则:

  • 如果存在具有相同视图或任何成员表的自联接,则不允许使用DELETE语句