我正在使用sqlcmd导出我的数据 -
-S Server -dDatabase -E -b -r1 -s "|" -i "D:\Scripts\export.sql" -o \\server\export-YYYYMMDD.csv -h-1
它返回一个包含NULL的格式 -
value1 | value2 | datetime
value2 | NULL | NULL
value3 | value3 | NULL
NULL实际上就像这样显示在CSV中。 NULL。
我似乎无法进行批量插入。它一直在失败那些NULL值。我试过制作一个格式文件。我不知道怎么告诉它是否看到NULL将该值插入为NULL。
USE database;
GO
DELETE table;
GO
BULK INSERT table
FROM '\\server\export-YYYYMMDD.csv'
WITH (FORMATFILE = '\\server\format.xml');
GO
SELECT * FROM table;
GO
如果我改变文件并将NULL更改为'''插件工作正常但我不能为了自动化而这样做。
这些数据库没有任何连接(单独的防火墙)因此需要导出/导入。
我应该接近另一种方式,还是我缺少一些东西?
答案 0 :(得分:2)
原来我接近错了。
我发现以下documentation允许我更改导出以使用BCP而不是这样 -
bcp "select * from dbo.table" queryout test.csv -t, -c -S servername\instance -d Database -T
这给了我带NULL的数据作为空格,这使我的批量插入能够正常工作。