症状
在包含许多 null 值的表上执行 SQL Server 2014 Integration Services (SSIS) 包时,如果满足以下条件,则 SSIS 包可能会在目标列中生成不正确的结果:
- 在包中,您可以使用逆透视转换来规范化表中的数据集。
- 在 Unpivot 转换的表达式中,将表中的数据集透视到多个目标列中。
具体而言,如果列的数据类型是数值数据类型,则 null 值可能会更改为 0 (0) ;如果列的数据类型是字符串数据类型,则 null 值可能会更改为空字符串。
解决方法
此问题已首先在 SQL Server 的以下累积更新中修复。
SQL Server 2014 SP1 累积更新 1 /en-us/help/3067839
SQL Server 2014 累积更新 8 /en-us/help/3067836
关于 SQL Server 的累积更新
SQL Server 的每个新累积更新都包含上一个累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
修补程序信息 Microsoft 提供了一个受支持的修补程序。 但此程序只用于解决本文中提到的问题。 仅将此修补程序应用于遇到此特定问题的系统。
如果修补程序可供下载,则本知识库文章顶部的“修补程序下载可用”部分。 如果此部分不存在,请向 Microsoft 客户服务和支持部门提交请求以获取该修补程序。
注意 如果发生其他问题或需要进行任何故障排除,您应该另行创建服务请求。 对于此特定修补程序无法解决的其他支持问题和事项,将照常收取支持费用。 若要获取 Microsoft 客户服务和支持部门的完整电话号码列表或另行创建服务请求,请访问以下 Microsoft 网站:
/contactus/?ws=support 注意 “修补程序下载可用”窗体显示了修补程序的可用语言版本。 如果您找不到需要的语言,则说明该语言版本的修补程序未提供。
参考资料
请参阅如何在 SSIS 中透视。
请参阅使用 “Pivot”和“UnPivot”转换。