Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在tinyint字段中,TRUE的DT_BOOL值映射为255。为什么不是1呢?_Sql Server_Ssis - Fatal编程技术网

Sql server 在tinyint字段中,TRUE的DT_BOOL值映射为255。为什么不是1呢?

Sql server 在tinyint字段中,TRUE的DT_BOOL值映射为255。为什么不是1呢?,sql-server,ssis,Sql Server,Ssis,我使用SQL Server Integration Services 2008在数据库中输入某个布尔值,最初我使用的SSIS类型是DT_BOOL(布尔值) 但是,在数据库中,布尔值存储为tinyint字段(出于传统原因)。布尔值TRUE将作为255(所有位都打开)保存在数据库中,而不是更传统的值1 有没有办法强迫TRUE的DT_BOOL值映射到1而不是255?或者我需要将SQL字段更改为bit,还是使用类似DT_UI1的数字SSIS类型 您可以在SSIS包中添加进一步的转换任务,以将DT_BOO

我使用SQL Server Integration Services 2008在数据库中输入某个布尔值,最初我使用的SSIS类型是
DT_BOOL
(布尔值)

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


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

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


在我看来,如果您确实可以选择将数据库数据类型修改为更合适的位数据类型,那就更好了。

现在,我使用的是DT_I4而不是DT_BOOL