如何在没有SSIS的情况下插入数据时定位错误数据

时间:2016-07-07 09:38:42

标签: sql sql-server ssis

我有一个包含许多整数类型列的表,它用于从另一个源表中插入所有相应列都是varchar的数据。

INSERT INTO mytable(intCol1, intCol2, ...intColN, [OtherCols])
SELECT CAST(col1 AS int), CAST(col2 AS int),.... FROM SourceTable

最后,脚本引发了一个数据级但却模糊不清的错误,例如'无法将某些内容转换为int'或'转换为int'的算术溢出错误。但是,由于我有这么多的int列和如此多的数据行,所以不太可能找到错误源的位置,至少在列级别。

此外,由于某种原因,不允许使用SSIS重定向并查找我的情况的错误数据,只有SQL脚本级别可用。有没有解决方案?

1 个答案:

答案 0 :(得分:0)

可以从SSIS中的OLE DB目标重定向错误行。 不要在dest中使用快速加载,将错误输出配置为“重定向行”而不是“失败组件”,使用红色箭头/数据流路径将坏行发送到派生列任务,将数据查看器置于红色数据流路径。

这应该允许您找到导致问题的特定行。