SQL Server 数据库 - 允许应用程序编辑视图中的记录?

发布于 2024-09-06 16:18:09 字数 87 浏览 4 评论 0原文

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

I made a custom view for a group of three tables. How would I configure the view so that it can be edited by an application using it like a table? I am using SQL Server Studio Express.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浪菊怪哟 2024-09-13 16:18:09

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

  • 任何修改(包括 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 触发器< /a>.

Views in SQL Server can be updatable, but there are restrictions (CREATE VIEW, Updatable View section):

  • Any modifications, including UPDATE, INSERT, and DELETE statements, must reference columns from only one base table.
  • The columns being modified in the view must directly reference the underlying data in the table columns. The columns cannot be derived in any other way, such as through the following:
    • An aggregate function: AVG, COUNT, SUM, MIN, MAX, GROUPING, STDEV, STDEVP, VAR, and VARP.
    • A computation. The column cannot be computed from an expression that uses other columns. Columns that are formed by using the set operators UNION, UNION ALL, CROSSJOIN, EXCEPT, and INTERSECT amount to a computation and are also not updatable.
  • The columns being modified are not affected by GROUP BY, HAVING, or DISTINCT clauses.
  • TOP is not used anywhere in the select_statement of the view together with the WITH CHECK OPTION clause.

Otherwise, you'll have to use INSTEAD OF triggers.

司马昭之心 2024-09-13 16:18:09

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

You'll need to create INSTEAD OF INSERT and INSTEAD OF UPDATE triggers on the view and then write insert and update statements within the trigger to manipulate the data in the 3 underlying tables. See this MSDN article that has a simple example. You'll find the desired edited values in the special INSERTED table within the context of the trigger definition.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文