如何使SQLDataSource插入视图而不是基础表?

时间:2012-10-25 21:24:54

标签: sql-server sqldatasource datasourcecontrol

我们用统一表替换了20个表,它通过“set id”分隔每组数据(表“A”的所有记录的set_id为1,表“B”为2,等等) 。

然后,我们在表上构建了视图,并重命名了每个视图,使得视图与原始的20个表具有相同的名称,并使用WHERE添加set_id。净结果 - 插入/更新/选择视图仍然有效

我们这样做了,所以我们的网页使用sqldatasource和“sql命令构建器”,不需要改变。我们在每个视图上添加了一个INSTEAD OF INSERT触发器,这样当您插入视图时,它会添加set_id并插入到统一表中。到现在为止还挺好。

部分有效:UPDATE和DELETE有效,因为它们知道记录的实际ID。

然而INSERT不会 - 当命令实际执行时,我们看到“exec sp_executesql insert into consolidatedtable” - 而不是点击视图,数据源控件找到基础表,然后直接插入其中。如果我们尝试向视图添加字段,它们会显示在数据源控件中,但网页会显示可配置字段。

有没有办法在数据库端更改内容以强制它使用视图?此时我唯一的另一个选择是用表替换视图,添加AFTER INSERT,UPDATE,DELETE触发器以便更新整合,然后确定它们是同步的并且没有问题。 / p>

提前多多感谢。

0 个答案:

没有答案