2012-10-11 12 views
0

我使用bcp导入工具遇到小问题。这是我的情况.csv数据文件(字段分隔符如果|字符)和格式文件。我可以成功地将数据导入到表中,但它在数据文件中导入NULL值而不是空字符串。下面考虑作为样本记录中的数据文件当使用带有外部数据文件和格式文件的bcp实用程序时,导入空字符串(列默认值)而不是NULL值

col1|col2|||col5|col6 

我喜欢下面

col1 col2 NULL NULL col5 col6 

但我在我的表定义期待下文输出

col1 col2 (empty string) (empty string) col5 col6 

输出,默认值是空字符串,这是由于数据文件(bcp数据导出命令)或我的数据导入bcp命令的问题。

这是我用于导入数据 BCP [数据库]命令[表]在M:\数据\ xx.csv -f M:\格式\ XX.FMT -S服务器-T

感谢和所有答复,欢迎。

+0

我不知道你的工具,但它似乎创建INSERT INTO语句,它为未给定的值创建NULL值。 – YvesR

回答

0

我相信你已经创建表的列有默认值空字符串“”

例如:

create table mytable (
    col1 varchar(10) default "" 
) 
+0

我正在使用SQL Server 2008及其工具来创建和修改表。我没有为每列设置默认值属性(默认值或绑定),并允许NULL。 – Nish

+0

如果无法将列定义更改为具有默认值的空字符串,则可以将该文件bcp到临时表中,然后对主表插入可以使用空字符串的主表 –

+0

感谢Mark,其实这次我检查了继续使用NULL值的可能性。由于NULL值没有问题,所以我这样做了,因为它是通过为BCP导入添加另一个表来消耗额外时间的原因,因为它是DB作业的一小部分。 – Nish

0

您可以在编辑器的属性在Management Studio界面更新列默认值或绑定: ('')

相关问题