Sql server 如果不遵循特定的设计,则程序包出错

Sql server 如果不遵循特定的设计,则程序包出错,sql-server,csv,ssis,etl,flat-file,Sql Server,Csv,Ssis,Etl,Flat File,因此,我在将平面文本文件(使用逗号作为分隔符)导入数据库中的表时遇到了一个有趣的情况 该文件非常简单,我发现这种奇怪情况的唯一原因是,如果包失败,我想测试一些错误日志tid位 当我试图故意使我的包崩溃时,我拿着我的文本文件,开始在不应该的地方添加随机逗号,并创建最初没有定义的随机标题。奇怪的是,它们都是进口的,没有问题 应该通过并导入到系统中的已批准文件如下所示 Col1, Col2, Col3 Data1, Data2, Data3 ... 商定的文件应始终为3列,所有列当前均为字符串 当我

因此,我在将平面文本文件(使用逗号作为分隔符)导入数据库中的表时遇到了一个有趣的情况

该文件非常简单,我发现这种奇怪情况的唯一原因是,如果包失败,我想测试一些错误日志tid位

当我试图故意使我的包崩溃时,我拿着我的文本文件,开始在不应该的地方添加随机逗号,并创建最初没有定义的随机标题。奇怪的是,它们都是进口的,没有问题

应该通过并导入到系统中的已批准文件如下所示

Col1, Col2, Col3
Data1, Data2, Data3
...
商定的文件应始终为3列,所有列当前均为字符串

当我试图通过以下方式打破我的包裹时

Col1, Col2, Col3, TESTBREAKHDR
Data1, Data2, Data3
...

Col1, Col2, Col3
Data1, Data2, Data3, TESTBREAKDATA
...
头被忽略,数据被转移到最后一行

对我来说,这些是我想要捕捉的错误,而不是继续进行任何类型的导入。由于这些文件是在其他地方生成的,只是被我的软件包拾取以供使用—而不是试图在修复之前修复文件(因为在修复之前需要进行一些调查工作)—我希望它只是出错,而不进行任何导入


如有任何有用的提示或建议,将不胜感激

在头中添加额外列时,如果在执行包时使用
平面文件源
平面文件连接管理器
读取数据。
平面文件源
将引发异常,提醒您元数据需要更新,验证失败

在数据行中找到额外列时。您可以在数据流任务中添加脚本组件,并针对每一行检查
Col3
是否包含逗号
。如果是这样,抛出异常

只有在超过列的数据长度时,行中的额外信息才会在验证时引发错误

注意:正如您所说,平面文件连接管理器不会在数据行中检测到额外的列,它会将它们连接到最后一列中