这样试试:
update a
set field1='123'
from a
where field2='abc'

解决方案 »

  1.   

    大仙,用我的sql语句可以达到目的,我想知道,为什么在打开视图后直接修改会出现这样的错误。
      

  2.   

    通过视图修改数据
    可以按下列方式通过视图修改数据: 使用具有支持 INSERT、UPDATE 和 DELETE 语句的逻辑的 INSTEAD OF 触发器。
    使用修改一个或多个成员表的可更新分区视图。 
    如果视图不使用 INSTEAD OF 触发器或者不是可更新分区视图,则只要符合下列条件,仍可更新:如果视图不使用 INSTEAD OF 触发器或者不是可更新分区视图,则只要符合下列条件,仍可更新: 视图在视图定义的 FROM 子句中包含至少一个表;视图不能只基于一个表达式。
    在选择列表中没有使用聚合函数(AVG、COUNT、SUM、MIN、MAX、GROUPING、STDEV、STDEVP、VAR、VARP)或 GROUP BY、UNION、DISTINCT 或 TOP 子句。但是,可以在 FROM 子句定义的子查询范围内使用聚合函数,前提条件是聚合函数生成的派生值没有修改过。 
    说明  使用 UNION ALL 运算符的分区视图是可更新视图。在选择列表中不使用派生列。派生列是由除简单列引用以外的一切构成的结果集列。
      

  3.   

    see http://expert.csdn.net/Expert/topic/1660/1660923.xml?temp=.5878107
      

  4.   

    使用 INSTEAD OF 触发器