我正在使用SqlBulkCopy来处理大量插入到某些数据库中。这导致一个db的性能改进很大。
但是,另一个目标db表是组成2个表的视图。应用单表代码会导致“System.Data.SqlClient.SqlException:视图或函数'dbo.vwParameter'不可更新,因为修改会影响多个基表”。可以将视图展平到一个表中而不会引起很多复杂情况,但这是不可取的,因为它可以节省大量的磁盘空间。
所以在这种情况下可以使用SqlBulkCopy,我只是做错了什么?或者如果没有,那么什么可能是一个好的解决方法,保留了阅读的观点?
答案 0 :(得分:3)
事实证明,SqlBulkCopy默认忽略了my而不是触发器。我所要做的就是将SqlBulkCopyOptions.FireTriggers传递给SqlBulkCopy构造函数。
答案 1 :(得分:0)
您是否查看了有关更新视图中数据的documentation?这里描述了两种可能的解决方案,第一种可能就是你想要的解决方案。
答案 2 :(得分:0)
您可以将视图与SqlBulkCopy一起使用
但我相信你的问题是你所拥有的观点是不可更新的
视图必须符合某些要求才能更新。
您可以在此处找到更多信息http://msdn.microsoft.com/en-us/library/ms187956.aspx
查找“可更新视图”部分。
我建议你直接填充这两个表中的每一个,如果可能的话,一次一个?