在 SQL Server 2005 中使用 SSIS 从平面文件导入时如何保留 NULL 值

发布于 2024-10-11 09:07:47 字数 167 浏览 2 评论 0原文

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

I've exported records to a flat file delimited by "|" and it seems that when I import those records into a new database , SQL Server treats the NULL values as empty fields. IMy queries worked properly when the records/fields were NULL and so I want to either find a way to retain the NULL values in the data or convert the blank fields to NULL values. I'm assuming the former would be easier, but I don't know how to do that. Any help would be appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

Bonjour°[大白 2024-10-18 09:07:47

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

I just had the same problem. I resolved it by Changing the RetainNulls property in the properties of the Flat File Source in the Data Flow Task.

┼── 2024-10-18 09:07:47

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

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

In your destination connection in the dataflow, there is a property that you can chceck that says Keep nulls, JUst check that. Why that isn't the default I'll never know.

Hmmm something stange going on there. I can suggest that you then clean the data and change it to null, you can either do this as part of the dataflow or do two dataflows, one which inserts the data into a staging table, then run an exectue SQl task to do the clean up and then create a dataflow to run fromthe staging table to the real table.

白首有我共你 2024-10-18 09:07:47

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

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

in case anyone is looking how to do this when building the package programatically you need to set the variable in your CManagedComponentWrapper object

CManagedComponentWrapper instanceSource = ComponentSource
...
instanceSource.SetComponentProperty("RetainNulls", true);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文