通过视图修改数据时所应掌握的基本准则

作者:39331 时间:2009-01-07 14:22:00 

假如不使用INSTEAD OF触发器或可更新分区视图而是通过视图来修改数据,那么再修改之前,请考虑下列准则:

◆如果在视图定义中使用了 WITH CHECK OPTION 子句,则所有在视图上执行的数据修改语句都必须符合定义视图的 SELECT 语句中所设定的条件。如果使用了 WITH CHECK OPTION 子句,修改行时需注意不让它们在修改完成后从视图中消失。任何可能导致行消失的修改都会被取消,并显示错误信息。

◆SQL Server 必须能够明确地解析对视图所引用基表中的特定行所做的修改操作。不能在一个语句中对多个基础表使用数据修改语句。因此,列在 UPDATE 或 INSERT 语句中的列必须属于视图定义中的同一个基表。

◆对于基础表中需更新而又不允许空值的所有列,它们的值在 INSERT 语句或 DEFAULT 定义中指定。这将确保基础表中所有需要值的列都可以获取值。

◆在基础表的列中修改的数据必须符合对这些列的约束,如为空性、约束、DEFAULT 定义等。例如,如果要删除一行,则相关表中的所有基础 FOREIGN KEY 约束必须仍然得到满足,删除操作才能成功。

◆分布式分区视图(远程视图)不能使用键集驱动游标更新。此项限制可通过在基础表上而不在视图本身上声明游标得到解决。

此外,如果在视图中删除数据:

◆在视图定义的 FROM 子句中只能列出一个表。

不能在视图中与text、ntext 或 image 列一起使用 READTEXT 和 WRITETEXT 语句。

标签:
0
投稿

猜你喜欢

  • Node.js多进程的方法与参数实例说明

    2024-05-02 17:37:37
  • python中使用while循环的实例

    2022-12-25 00:23:57
  • 柳永法:vbs或asp采集文章时网页编码问题

    2009-02-04 10:50:00
  • 如何实现SQL Server的分页显示?

    2010-05-18 18:36:00
  • python练习程序批量修改文件名

    2022-01-29 06:53:12
  • python编程通过蒙特卡洛法计算定积分详解

    2022-05-31 10:45:01
  • 一次现场mysql重复记录数据的排查处理实战记录

    2024-01-17 11:42:28
  • JS踩坑实战之19位数Number型精度丢失问题详析

    2024-04-10 10:44:23
  • Python批量修改图片分辨率的实例代码

    2023-01-30 01:59:10
  • 符合标准的纯CSS三 级弹出菜单

    2008-01-06 15:34:00
  • Python设计模式之简单工厂模式实例详解

    2022-11-03 04:43:08
  • 如何让IIS支持wap,让ASP生成wml

    2008-05-18 13:42:00
  • 用PHP编写每周签到功能以提高用户参与度

    2023-05-27 17:24:54
  • 安装MySQL的步骤和方法

    2009-07-30 08:38:00
  • javascript网页随机点名实现过程解析

    2024-04-16 09:35:31
  • python实现单例的两种方法解读

    2022-04-10 21:10:46
  • 解决python3读取Python2存储的pickle文件问题

    2023-03-18 14:20:30
  • Python网站验证码识别

    2023-09-11 04:29:36
  • Python3日期与时间戳转换的几种方法详解

    2021-03-10 03:57:17
  • 解决Pytorch内存溢出,Ubuntu进程killed的问题

    2023-08-31 22:12:16
  • asp之家 网络编程 m.aspxhome.com