我将使用SqlBulkCopy来处理一些数据库中的大型插入。这为一个数据库带来了巨大的性能提升。
然而,另一个目标db表是由2个表组成的视图。应用单表代码会导致"System.Data.SqlClient.SqlException:视图或函数'dbo.vwParameter‘不可更新,因为修改会影响多个基表“。可以将视图展平到一个表中,而不会导致太多的复杂性,尽管这并不是我们所希望的,因为它节省了大量的磁盘空间。
那么,是否可以在这种情况下使用SqlBulkCopy,而我只是做错了什么?或者,如果不是,有什么好的变通办法可以保留视图以供阅读?
发布于 2011-05-03 15:22:46
事实证明,SqlBulkCopy默认忽略了我的instead of触发器。我所要做的就是将SqlBulkCopyOptions.FireTriggers传递给SqlBulkCopy构造函数。
发布于 2011-05-02 15:41:04
你看过关于在视图中更新数据的documentation了吗?这里描述了两种可能的解决方案,第一种可能就是您想要的。
发布于 2011-05-02 15:58:10
您可以将视图与SqlBulkCopy一起使用。
但我相信你的问题是你的观点是不可更新的。
视图必须满足某些要求才能更新。
你可以在这里找到更多信息http://msdn.microsoft.com/en-us/library/ms187956.aspx
查找“可更新的视图”部分。
如果可能,我建议您直接填充这两个表中的每个表,一次填充一个表?
https://stackoverflow.com/questions/5854567
复制相似问题