SQL SERVER数据库中 是否可以对视图进行修改删除

特定的分区可以

在下列情况中,视图被视为可更新的分区视图:

  • 视图是一组 SELECT 语句,这些语句的结果集通过 UNION ALL 语句组合为一个结果集。每个 SELECT 语句引用一个 SQL Server 基表。该表可以是本地表,也可以是使用 4 部分名称、OPENROWSET 函数或 OPENDATASOURCE 函数引用的链接表(不能使用 OPENDATASOURCE 或 OPENROWSET 函数指定直接传递式查询)。

 

INSERT 语句通过分区视图将数据添加到成员表中。INSERT 语句必须遵守下列规则:

  • 所有列必须包含在 INSERT 语句中,即使基表中的列可能为 NULL 或在基表中定义了 DEFAULT 约束。

  • 不能在 INSERT 语句的 VALUES 子句中指定 DEFAULT 关键字

  • INSERT 语句提供的值必须符合在一个成员表的分区列上定义的 CHECK 约束逻辑

  • 如果一个成员表包含具有标识属性的列,则不能使用 INSERT 语句。

  • 如果一个成员表包含 timestamp 列,则不能使用 INSERT 语句。

  • 如果存在具有同一视图或任一成员表的自联接,则不能使用 INSERT 语句。

UPDATE 语句通过分区视图在一个或多个成员表中修改数据。UPDATE 语句必须遵守下列规则:

  • UPDATE 语句不能在 SET 子句中将 DEFAULT 关键字指定为值,即使列在相应的成员表中定义了 DEFAULT 值。

  • 不能更改具有标识属性的列的值;不过可以更新其它列。

  • 如果列中包含 textimage ntext 数据,则不能更改 PRIMARY KEY 的值。

  • 如果基表中包含 timestamp 列,则不能进行更新。

  • 如果存在具有同一视图或成员表的自联接,则不能进行更新。

  • 不能在 UPDATE 语句的 SET 子句中指定 DEFAULT 关键字。

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

  • 如果存在具有同一视图或任一成员表的自联接,则不能使用 DELETE 语句。
posted @ 2012-09-10 10:15  左正  阅读(1151)  评论(0编辑  收藏  举报