将数据插入视图时的最佳做法

时间:2009-08-06 20:27:39

标签: sql sql-server views

我有一些观点,我想在其中插入一些数据。我听说你需要“做这个时要小心”,你需要“设置视图以使插件正常工作”。我需要查找什么,以及如果我需要对我的视图进行任何操作以允许插入它?

最好插入基础表,即使它非常麻烦吗?

2 个答案:

答案 0 :(得分:1)

来自MSDN,Modifying Data Through a View

  • 单基表可以更新
  • 没有聚合或花哨的联接
  • 没有行限制器(例如TOP)

就个人而言,我会使用INSTEAD OF / BEFORE触发器,因为文章提到我是否无法使用存储过程而且我必须允许可更新视图

答案 1 :(得分:0)

您不能INSERT INTO vwMyCompexView使用T-SQL,也不能使用SQL Management Studio的网格GUI将数据插入由底层连接组成的视图中。

您可以使用SQL Mgmt Studio网格GUI或T-SQL将数据插入由单个表组成的视图中,该视图不执行任何计算或聚合函数。只能插入那些作为基表的直镜像的视图。如果您的视图排除了不可为空且没有默认值的列,则插入将失败。

我的建议是始终使用存储过程编写插入脚本。 (在回答这个问题之前,我实际上必须尝试这两种情况。我从未考虑使用视图来插入数据。这只是我; YMMV。)