首页 > 解决方案 > 如何从 bcp 添加 sysdate

问题描述

我有一个具有以下示例数据格式的 .csv 文件:

REFID|PARENTID|QTY|DESCRIPTION|DATE
AA01|1234|1|1st item|null
AA02|12345|2|2nd item|null
AA03|12345|3|3rd item|null
AA04|12345|4|4th item|null

要将上述文件加载到我正在使用以下 BCP 命令的表中:

/bcp $TABLE_NAME in $FILE_NAME -S $DB_SERVER -t "|" -F 1 -U $DB_USERNAME -d $DB_NAME

我想在这里查看的内容如下(从 bcp 添加 sysdate 而不是 null)

AA01|1234|1|1st item|3/16/2020
AA02|12345|2|2nd item|3/16/2020
AA03|12345|3|3rd item|3/16/2020
AA04|12345|4|4th item|3/16/2020

更新: 我能够通过 -F 1 选项使用@Jamie 回答排除标题,但在使用 bcp 插入日期时寻求一些帮助。尝试寻找一些旧的问答,但到目前为止没有运气..

标签: shellbcp

解决方案


要排除单个标头记录,可以使用 -F 选项。这将告诉 BCP 文件中的哪一行是开始加载的第一行。对于您的示例, -F2 应该可以正常工作。但是,您的命令还有其他问题。看评论。

如您所述,无法使用 BCP 命令引入新数据。在将数据复制到表中时,BCP 无法引入日期值。为此,我建议为您的日期列设置默认值,或者首先将原始数据加载到没有日期列的表中,然后您可以在后期处理中引入您认为合适的日期值。


推荐阅读