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

作者: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
投稿

猜你喜欢

  • ip地址和身份证的js验证代码

    2007-12-29 21:49:00
  • js表单验证控制代码大全

    2010-03-07 14:25:00
  • 在JavaScript中,为什么要尽可能使用局部变量?

    2009-03-01 12:38:00
  • 通过事务日志解决SQL Server常见四大故障(二)

    2009-03-25 13:51:00
  • HTML文件HEAD内部标签用法浅析

    2008-07-06 20:56:00
  • 屏蔽Flash 右键菜单的方法

    2008-05-24 07:21:00
  • MySQL5创建存储过程实例

    2010-06-13 12:49:00
  • 名词解释:带你轻松接触13个数据库术语

    2009-05-13 10:32:00
  • 日文片假名导致 Access 搜索“内存溢出”

    2009-07-07 22:23:00
  • 写了一个小巧的jquery拾色工具

    2009-12-21 14:22:00
  • asp生成带日期的随机数

    2008-09-03 13:13:00
  • IE7新支持的CSS属性和属性选择符

    2008-03-16 14:26:00
  • 如何编写一个基于WEB的文件查询系统?

    2009-11-08 18:55:00
  • YUI 学习笔记:Event

    2009-02-21 11:15:00
  • 一个较复杂的字符串截取函数

    2009-11-02 10:45:00
  • 再谈 Web 字体的现状与未来[译]

    2009-11-24 13:55:00
  • SQL Server中两种修改对象所有者的方法

    2009-01-15 13:10:00
  • 10个很实用的js小脚本代码

    2007-10-17 21:08:00
  • Oracle数据库逻辑备份的SH文件

    2010-07-27 13:26:00
  • MYSQL教程:my.cnf缓存优化

    2009-07-30 08:58:00
  • asp之家 网络编程 m.aspxhome.com