1

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

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

我们这样做是为了让我们的网页(使用带有“sql 命令生成器”的 sqldatasource)不必更改。我们在每个视图上添加了一个 INSTEAD OF INSERT 触发器,这样当您插入视图时,它会添加 set_id 并插入到统一表中。到目前为止,一切都很好。

它部分有效:更新和删除有效,因为它们知道记录的实际 ID。

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

有没有办法改变数据库端的东西以强制它使用视图?在这一点上,我唯一的其他选择是用表替换视图,添加一个 AFTER INSERT、UPDATE、DELETE 触发器以便更新合并,然后是一个确保它们同步并且没有问题的过程。

提前谢谢了。

4

0 回答 0