繁体   English   中英

是否可以使用 SqlBulkCopy 将信息插入到超过 2 个表的视图中?

[英]It is possible to use SqlBulkCopy to insert information into a view over 2 tables?

我打算使用 SqlBulkCopy 来处理对某些数据库的大量插入。 这为一个 db 带来了巨大的性能改进。

但是,另一个目标数据库表是由 2 个表组成的视图。 应用单表代码会导致“System.Data.SqlClient.SqlException: View or function 'dbo.vwParameter' 不可更新,因为修改会影响多个基表”。 可以将视图展平到一个表中而不会引起很多复杂性,尽管这是不受欢迎的,因为它节省了大量的磁盘空间。

那么是否可以在这种情况下使用 SqlBulkCopy ,而我只是做错了什么? 或者如果没有,什么可能是一个很好的解决方法来保留阅读视图?

事实证明,SqlBulkCopy 默认忽略了我的而不是触发器。 我所要做的就是将 SqlBulkCopyOptions.FireTriggers 传递给 SqlBulkCopy 构造函数。

您是否查看过有关在视图中更新数据的文档 那里描述了两种可能的解决方案,第一个可能是您想要的。

您可以将视图与 SqlBulkCopy 一起使用。
但我相信你的问题是你的观点是不可更新的。
视图必须满足某些要求才能更新。
你可以在这里找到更多信息http://msdn.microsoft.com/en-us/library/ms187956.aspx
查找“可更新视图”部分。

我建议您直接填充这两个表中的每一个,一次一个,如果可能的话?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM