2011-03-09 64 views
1

可以使用单个视图同时向三个表格中插入数据。 am使用视图从最终用户抽象我的数据库实际表,以直接插入数据到他们。 该视图将充当我实际表的保护层。 但我有3个表,并希望在其中插入数据。使用视图,抽象实际表格,使用视图更新多个表格

但由于视图不能用于修改多个表。所以这是什么解决方案?

我需要创建3个不同的视图和运行:

Insert into View1 values() 
Insert into View2 values() 
Insert into View3 values() 
+3

视图可以更新,但有限制。我认为你最好将插入逻辑放入存储过程中。 – 2011-03-09 06:50:48

+0

@OMG小马:亲爱的夫人,你的意思是说,我将创建一个过程,并简单地给它插入查询。而已。或者是否存在某种复杂的代码? – sqlchild 2011-03-14 05:37:05

+1

您提到了三个要插入的表,所以在存储过程中应该有三个INSERT。如果需要的话,它会支持额外的逻辑。 – 2011-03-14 06:01:07

回答

4

如果你想更新从单一视图多个表,你可能需要创建一个或多个* INSTEAD OFtriggers上风景。然后,您可以使用inserteddeleted伪表制作应该应用于每个基表的插入/更新/删除。

*如果在插入和更新视图的过程中存在很多共同点,我建议为这两者添加一个触发器。如果操作非常不同,我建议保持触发器分离。