【问题标题】:How do I retain NULL values when using SSIS to import from flat file in SQL Server 2005使用 SSIS 从 SQL Server 2005 中的平面文件导入时如何保留 NULL 值
【发布时间】:2011-06-04 23:30:58
【问题描述】:

我已将记录导出到以“|”分隔的平面文件似乎当我将这些记录导入新数据库时,SQL Server 将 NULL 值视为空字段。当记录/字段为 NULL 时,IMy 查询正常工作,因此我想找到一种方法来保留数据中的 NULL 值或将空白字段转换为 NULL 值。我假设前者会更容易,但我不知道该怎么做。任何帮助将不胜感激。

【问题讨论】:

    标签: sql sql-server-2005 ssis null


    【解决方案1】:

    我也遇到了同样的问题。我通过更改数据流任务中平面文件源属性中的 RetainNulls 属性解决了这个问题。

    【讨论】:

    • 这允许将空白值视为 NULL,并节省大量设置派生列来处理它的工作。
    【解决方案2】:

    在数据流中的目标连接中,您可以检查一个属性,该属性显示保持空值,只需检查即可。为什么这不是我永远不会知道的默认设置。

    嗯,那里发生了一些奇怪的事情。我可以建议您然后清理数据并将其更改为 null,您可以将其作为数据流的一部分执行,也可以执行两个数据流,一个将数据插入到临时表中,然后运行执行 SQl 任务进行清理up 然后创建一个数据流从临时表运行到真实表。

    【讨论】:

    • 我已经选中了那个框,但它似乎没有什么不同;这些字段在表中仍然显示为空白,而不是 NULL。我还仔细检查了文件,我的分隔符“|”之间没有空格。甚至预览也将字段显示为空白。我错过了什么吗?
    • 我还必须选中源中的类似框:“将源中的空值保留为数据流中的空值”。没有它,空值将被转换为字符串。
    【解决方案3】:

    如果有人在以编程方式构建包时正在寻找如何执行此操作,则需要在 CManagedComponentWrapper 对象中设置变量

    CManagedComponentWrapper instanceSource = ComponentSource
    ...
    instanceSource.SetComponentProperty("RetainNulls", true);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-14
      • 1970-01-01
      • 2011-02-17
      • 1970-01-01
      • 1970-01-01
      • 2019-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多