真实值DT_BOOL映射到tinyint字段中的值为255,为什么不是1?

4
我正在使用SQL Server Integration Services 2008将某个布尔值放入数据库中,最初我使用了SSIS类型的DT_BOOL(布尔型)。

然而,在数据库中,由于历史原因,布尔值被存储为tinyint字段。一个TRUE布尔值会以255(所有位都打开)的形式保存在数据库中,而不是更传统的1。

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

1个回答

4

你可以在SSIS包中添加进一步的转换任务,将DT_BOOL值为TRUE的值转换为1,并使用与SQL Server数据类型tinyint相当的SSIS quuivalent,但这当然会增加处理步骤。

如果这确实是一个选项,那么修改数据库数据类型为更合适的bit数据类型会更好。


2
目前,我最终使用了 DT_I4 而不是 DT_BOOL。 - Zach Blocker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接