将默认值传递给批量插入中的列

时间:2010-11-22 09:01:33

标签: sql tsql

我正在尝试使用以下数据从csv文件中获取数据。

Station code;Priority vehicle;DateBegin;DateEnd
01;y;20100214;20100214
02;n;20100214;20100214
03;;20100214;20100214

现在,当csv文件中没有为“优先级车辆”列提供数据时,我希望表中的值为“n”。 我正在将查询编写为

BULK INSERT dbo.#tmp_station_details  
    FROM 'C:\station.csv'  
    WITH (  
         FIELDTERMINATOR ='';'',  
         FIRSTROW = 2,
         ROWTERMINATOR = ''\n'' 
        )  

1 个答案:

答案 0 :(得分:1)

点击此处查看完整说明: http://msdn.microsoft.com/en-us/library/ms187887.aspx

默认情况下,将数据导入表时,bcp命令和 BULK INSERT语句会观察为表中的列定义的任何默认值。例如,如果有是数据文件中的空字段,而是加载列的默认值。

我的建议是指定优先级车辆列的默认值,并且csv文件中的Null值将被覆盖到SQL表中,并使用表设计中指定的默认值。