我在使用 SSIS 数据导入向导将数据从制表符分隔的平面文件(TSV 文件)上传到 SQL Server 2005 时遇到问题。使用 SQL Server 2000 中的等效过程我没有遇到此问题,并且我检查了我尝试导入的文件的内部结构在 SQL Server 升级发生之前就没有改变。
问题是具有数字数据类型(例如 smallint、float 等)的列中的所有空白值在导入时都被转换为 0,而不是 NULL。这意味着对这些数据进行 AVGing 会给出错误的输出。
TSV 文件不包括文本限定符,但是使用一些虚拟数据测试限定符的使用并没有解决这个问题。
可以通过导入 VARCHAR 列来保留 NULL,但这远非理想。有没有办法指示 SSIS 导入/导出向导将空白值从平面文件导入数字数据类型为 NULL 而不是 0 的列?