我有一个SSIS流可将数据插入表中。该流程过去一直运行良好,直到更新了数据模型并添加了计算列。现在,当我尝试加载数据时,出现以下错误:
SQL Server错误消息-消息271-无法修改列“”,因为它是计算列或UNION运算符的结果。
我在这里找到了此错误消息的很好的解释:SQL Server错误消息-Msg 271
我之所以要接触StackOverflow的原因是,实际上,此列未映射到我的SSIS流中。这意味着我的OLEDB Destination组件知道该列的存在,但是其映射设置为 。这是我对待其他列(例如生成的ID)的方式,并且始终可以正常工作。
因此,问题就来了:为什么我会收到此错误消息?
我曾经有一个想法是SSIS可能正在自动生成将null值映射到此计算列的SQL插入语句。如果是这种情况,是否有任何方法可以强制SSIS完全忽略该列的存在?
我认为问题是您在将数据加载到OLE DB目标时使用了快速加载选项,请尝试使用常规表加载,因为此问题可能是在BULK INSERT操作期间引起的。
还要确保不会像NULL在插入的行中那样对生成用于计算列的值的表达式进行求值。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。