1

我为一组三个表制作了一个自定义视图。我将如何配置视图,以便应用程序可以像使用表格一样使用它来编辑它?我正在使用 SQL Server Studio Express。

4

2 回答 2

5

SQL Server 中的视图可以更新,但有一些限制(创建视图,可更新视图部分)

  • 任何修改,包括 UPDATE、INSERT 和 DELETE 语句,都必须仅引用一个基表中的列。
  • 视图中被修改的列必须直接引用表列中的基础数据。这些列不能以任何其他方式派生,例如通过以下方式:
    • 聚合函数:AVG、COUNT、SUM、MIN、MAX、GROUPING、STDEV、STDEVP、VAR 和 VARP。
    • 一个计算。无法从使用其他列的表达式计算该列。使用集合运算符 UNION、UNION ALL、CROSSJOIN、EXCEPT 和 INTERSECT 形成的列相当于计算并且也不可更新。
  • 正在修改的列不受 GROUP BY、HAVING 或 DISTINCT 子句的影响。
  • TOP 不与 WITH CHECK OPTION 子句一起在视图的 select_statement 中的任何地方使用。

否则,您将不得不使用INSTEAD OF 触发器

于 2010-06-22T00:44:43.103 回答
2

您需要在视图上创建 INSTEAD OF INSERT 和 INSTEAD OF UPDATE 触发器,然后在触发器中编写插入和更新语句来操作 3 个基础表中的数据。请参阅此 MSDN 文章,其中有一个简单的示例。您将在触发器定义的上下文中的特殊 INSERTED 表中找到所需的编辑值。

于 2010-06-22T00:41:53.520 回答