开发者社区> 问答> 正文

我有一个SSIS流可将数据插入表中。该流程过去一直运行良好,直到更新了数据模型并添加了计算列。现在,

我有一个SSIS流可将数据插入表中。该流程过去一直运行良好,直到更新了数据模型并添加了计算列。现在,当我尝试加载数据时,出现以下错误:

SQL Server错误消息-消息271-无法修改列“”,因为它是计算列或UNION运算符的结果。

我在这里找到了此错误消息的很好的解释:SQL Server错误消息-Msg 271

我之所以要接触StackOverflow的原因是,实际上,此列未映射到我的SSIS流中。这意味着我的OLEDB Destination组件知道该列的存在,但是其映射设置为 。这是我对待其他列(例如生成的ID)的方式,并且始终可以正常工作。

因此,问题就来了:为什么我会收到此错误消息?

我曾经有一个想法是SSIS可能正在自动生成将null值映射到此计算列的SQL插入语句。如果是这种情况,是否有任何方法可以强制SSIS完全忽略该列的存在?

展开
收起
祖安文状元 2020-01-03 15:58:33 791 0
1 条回答
写回答
取消 提交回答
  • 认为问题是您在将数据加载到OLE DB目标时使用了快速加载选项,请尝试使用常规表加载,因为此问题可能是在BULK INSERT操作期间引起的。

    还要确保不会像NULL在插入的行中那样对生成用于计算列的值的表达式进行求值。

    2020-01-03 15:58:47
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
RowKey与索引设计:技巧与案例分析 立即下载
Phoenix 全局索引原理与实践 立即下载
事务、全局索引、透明分布式 立即下载