关于视图更新问题一问

blldw 2004-09-27 10:17:14
举个简单的例子:我又两个基表,信息表,和成绩表,定义如下
信息表: ID (BIGINT, 自动编号)
姓名(varchar)
备注(varchar)

成绩表:ID (BIGINT)
成绩(float)

我建了一个视图,如下:
SELECT dbo.成绩表.成绩, dbo.信息表.*
FROM dbo.成绩表 INNER JOIN
dbo.信息表 ON dbo.成绩表.ID = dbo.信息表.ID

自己瞎编了2个记录,打开视图,想更新一个成绩字段,结果出错了,如下:
insufficient key column information for updating or refreshing.

请问为什么,如何解决!?
...全文
127 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
bernice99 2004-09-28
  • 打赏
  • 举报
回复
为了提高查询性能分割视图通常是一个来自多个表
的结果集但是也正因此而不支持视图更新.

INSTEAD OF 触发器的主要优点是使不可被修改的视图能够支持修改.
就这个意思!
rouqu 2004-09-28
  • 打赏
  • 举报
回复
总之你这样不能直接更新
要更新的话也要用instead of触发器
bernice99 2004-09-28
  • 打赏
  • 举报
回复
可以用instead of触发器来更新视图
yesyesyes 2004-09-28
  • 打赏
  • 举报
回复
视图可以更新,你不能更新可能是因为你的基表无主键或唯一键
Andy__Huang 2004-09-27
  • 打赏
  • 举报
回复
視圖沒有現實的數據﹐所以不能更新。只有表才能更新。

34,838

社区成员

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

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