SSIS中数据源和数据目标中的”保留空值”
来源:互联网 发布:node 命令行 编辑:程序博客网 时间:2024/04/28 19:56
SSIS中数据源和数据目标中的”保留空值”
在使用平面文件源和SQL SERVER目标的时候,会发现在平面文件源中,和SQL SERVER目标的”高级”设置中.有一个”保留空值”的选项.
如果设置这两个选项会得到什么样的结果呢?. 假如,我们现在有一个文本文件,内容如下: liangck,小梁,,21,2009-10-09 ,兰儿,女,, lan,,,, 其中有一些列为空.如果此时,不选中在平面文件源中的”保留源中的空值”的话, 那么.如果列类型为字符串,则返回长度为0的字符串’’ 如果列类型为数值,则返回数值0 如果列类型为日期的话,则返回1753-01-01 00:00:00 这个我们可以通过例子来证明. 1.创建一个平面文件源,不选择”在数据源中保留源中的空值” 然后选择上面的文本文件. 然后在”高级”中设置各列的类型.
列 类型
ID DT_STR
Name DT_WSTR
Sex DT_WSTR
Age DT_I2
LastAccess DT_DBTIMESTAMP
然后导入到目标表当中.目标的设置不介绍了.就选择Connection和设置映射即可.
CREATE TABLE tb2 (
[ID] VARCHAR(50),
[Name] NVARCHAR(50),
[Sex] NVARCHAR(2),
[Age] SMALLINT,
[LastAccess] DATETIME
)
可以看到.没有一个列为标识为null,而是采用了某个类型的最小默认值.
如果此时,选中平面文件源中的”保留数据流中数据源的空值”,将会这样的结果
OK.源中保留空值和不保留空值介绍完.再介绍SQL SERVER目标中.选中”保留空值”
如果在平面文件源中.不选中”保留数据流中数据源的空值”那么.列的值,已经用了某个类型中的最小默认值了,也就是说,列不为null了,而是使用了一个具体的值..此时,再设置SQL SERVER目标的”保留空值”的话,已经没有效了.
如果在平面文件源中.选中了”保留数据流中数据源的空值”的话,那么.如果不存在的数据.则用null标识.如果此时在SQL SERVER目标中.选择了”保留空值”.那就会用null标识空值.即使列中默认值也是.如果不选择目标中的”保留空值”的话,那如果有默认值,则用默认值,如果没有,则用null标识.
如:
--目标表
CREATE TABLE tb3(
[ID] VARCHAR(50),
[Name] NVARCHAR(50) DEFAULT 'lan',
[Sex] NVARCHAR(2),
[Age] SMALLINT,
[LastAccess] DATETIME
)
选中了 “保留数据流中数据源的空值” + 不选中 “保留目标的空值”
选中了 ”保留数据流中数据源的空值” + 选中 “保留目的空值”
- SSIS中数据源和数据目标中的”保留空值”
- SQL2005中SSIS的空目标适配器
- 在SSIS 中将Excel 2007文件作为数据源和目标
- SSIS中的原始文件源和目标
- SSIS中的DataReader源和目标
- SSIS中的记录集目标
- SSIS 2008开始支持直接将Excel 2007文件作为数据源和目标
- 在SSIS中使用SharePoint列表作为源和目标
- 在SSIS中使用SharePoint列表作为源和目标
- SSIS利用重新定向行方式过滤Excel 数据源中的重复数据
- SSIS如何在包中使用数据源
- SSIS如何在包中使用数据源
- SSIS_创建SSIS包和数据源
- SSIS中的容器和数据流—数据转换(Transformations)
- OLEDB数据源和目标组件
- OLEDB数据源和目标组件
- SSIS数据流中数据源发生长度被截断的问题
- SSIS中的SQL Server目标,OLEDB目标以及SQL Server Mobile目标
- 大数运算
- 探讨2大问题
- SSIS脚本任务中访问记录集RecordSet
- 气血养生
- Mysql连接时出现Client does not support authentication protocol问题解决办法
- SSIS中数据源和数据目标中的”保留空值”
- C#语法之virtual关键字
- mp3/rmvb转换
- 面试问题
- 在Windows中使用Cygwin环境下的gcc编译器编译【电脑教程网】Informix ESQ/C程序
- SSIS中 “条件拆分”组件中 ISNUMERIC的问题
- PL/SQL Developer 导 csv文件
- 同步、异步电路
- 官方SMDK2440 移植过程