DT_BOOL值TRUE在tinyint字段中映射到255。为什么不是1?

时间:2009-08-19 13:18:18

标签: sql-server ssis

我正在使用SQL Server Integration Services 2008在数据库中放置一个布尔值,最初我使用的是DT_BOOL(布尔值)的SSIS类型。

但是,在数据库中,布尔值存储为tinyint字段(出于遗留原因)。布尔值TRUE将作为255(所有位开启)保存在数据库中,而不是更传统的值1.

有没有办法强制DT_BOOL的{​​{1}}值映射到1而不是255?或者我是否需要将SQL字段更改为TRUE,或使用像bit这样的数字SSIS类型?

1 个答案:

答案 0 :(得分:3)

那么你可以在你的SSIS包中添加一个进一步的转换任务,将DT_BOOL值TRUE转换为1,并将SQLIS数据类型tinyint的SSIS quuivalent转换为,但这当然会为你的处理增加一个额外的步骤。

如果这确实是您的选择,那么在我看来,将数据库数据类型修改为更合适的位数据类型会好得多。