使用视图,抽象实际表,使用视图更新多个表

时间:2011-03-09 06:46:16

标签: c# sql sql-server sql-server-2005 tsql

可以使用单个视图同时将数据插入三个表。 我使用视图从最终用户抽象我的数据库实际表,直接将数据插入其中。 视图将作为我的实际表的保护层。 但我有3个表,并希望在其中插入数据。

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

我是否需要创建3个单独的视图并运行:

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

1 个答案:

答案 0 :(得分:4)

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

*如果您在为视图插入和更新时所做的事情之间存在很多共性,我建议为这两者进行单一触发。如果操作完全不同,我建议将触发器分开。