首页 > 解决方案 > 当源数据类型为 BIT 时,SSIS 数据转换任务给出错误的输出

问题描述

我从下面的脚本创建了两个表:

CREATE TABLE Test (ISDELETED BIT)

CREATE TABLE Test1 (ISDELETED INT)

表测试数据:

在此处输入图像描述

这里表中列isdeleted的数据类型testBIT,表中的test1数据类型是INT。所以现在使用 SSIS 我试图将数据从test表加载到Test1表中。

  1. DFD 的截图:Source 是 TEST,Destination 是 Test1

在此处输入图像描述

  1. 位到 int 的转换 在此处输入图像描述

  2. 转换后的列与目标的映射 在此处输入图像描述

运行此包后,在 Test1 表中得到以下输出:

在此处输入图像描述

所以作为输出我得到数据-1而不是1。

我认为这是 SSIS 错误。如果有人对上述问题有解决方案,请提供帮助。

标签: sql-serverssistype-conversiondata-conversionmsbi

解决方案


显然这就是 SSIS 将位转换为 int 的方式。一种解决方案是使用以下表达式添加派生列:

ISDELETED == True ? 1 : 0

推荐阅读