我知道要进行批量插入,我可以执行以下操作:
BULK INSERT tblName FROM 'c:\bulktext.text' With (FIELDTERMINATOR = ',')
我在 bulktext.text 中只有 4 列,但 tblName 有 20 列。如何仅将这 5 列插入 tblName。
有没有办法说应该在 BULK 语句中插入哪些列
我知道要进行批量插入,我可以执行以下操作:
BULK INSERT tblName FROM 'c:\bulktext.text' With (FIELDTERMINATOR = ',')
我在 bulktext.text 中只有 4 列,但 tblName 有 20 列。如何仅将这 5 列插入 tblName。
有没有办法说应该在 BULK 语句中插入哪些列
虽然您可以使用格式文件来处理此问题BULK INSERT
,但我发现此方法非常麻烦且容易出错。YMMV。其他想法:
在之前的项目中,我们使用 (3) 获得了很大的优势——我们能够重写文件而无需用无用数据打扰 SQL,并在管道中更早地拒绝无效数据。
您需要使用格式文件
信不信由你,创建一个仅映射这四列然后BULK INSERT
ing 到该列的视图也可以,而且它比格式化文件容易得多。
但是@AaronBertand 使用专用临时表的建议确实是一个更好的主意(大多数 DBA 通常这样做)。
您可以使用 Microsoft 推荐的特制格式文件的方法,在此处的 BOL中进行了描述。 如果这是一个问题,您需要使用上面的 @Aaron Bertrand 的方法。