视图和表到底有什么区别

gopark 2002-03-17 09:59:00
有什么操作视图不能作?
...全文
192 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fredfei 2002-03-18
  • 打赏
  • 举报
回复
对于INSERT DELETE UPDATE操作,视图要必须遵守规则
比如INSERT:

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


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


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


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


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


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

....
smartdonkey 2002-03-18
  • 打赏
  • 举报
回复
表是实实在在得保存数据的实体,写入的数据都保存在表中,而视图是不保存数据的,也没有数据。像上面的老兄说的一样视图就是一条语句,实际上视图从表中去数据。只是给我们的感觉好像直接从表中取得一样。
表可以建立各种触发器,可以建立索引,可以建立主健、约束等。但是视图不能建立这些对象(视图可以建立替代触发器)。
表和视图可以更新,但是视图的更新受到约束。
比如,group by和表连接生成的视图不能更新(这种情况只更新一个表可以)
shinebei 2002-03-18
  • 打赏
  • 举报
回复
虽然VIEW和TABLE外表相似,但VIEW只是一句SQL语句,我们看到的VIEW只是语句中挑选出来的表的数据,VIEW只是一张虚表罢了,对VIEW的操作,局限于VIEW对TABLE的筛选条件.

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧