通常,下列情况下不能更新数据:
◇基于多对多联接的查询。
◇基于在数据库中标记为只读的数据的查询。
◇违反基表上的约束的查询。
◇包含 DISTINCT 关键字以排除重复行的查询。
◇基于包含总计或聚合函数的子查询的查询。
◇其基础记录源的 SQL 语句中包含 GROUP BY 或 COMPUTE 子句的窗体、数据表或页。
◇基于 Transact SQL 函数的链接表,因为它们会创建一个到外部数据源的特定只读连接。
◇另外,无法更新查询结果中的指定列。下面的列表概括了在结果集内无法更新的列的类型。
☆基于表达式的列(如 price * quantity AS extended_price)。
☆其他用户删除了的行或列。
☆其他用户锁定了的行或列(通常,只要一解除锁定即可更新锁定的行)。