批量插入SQL Server中的特定列

时间:2013-02-16 16:37:20

标签: c# sql-server database bulkinsert

我的表格dic有2列englishbangla。我想使用文本文件中的批量插入将数据仅插入bangla列。

我试过可以插入2列

BULK INSERT dic
FROM 'C:\Users\Imon-Bayazid\Desktop\wordddd\good one\test.txt'
WITH
(
   FIELDTERMINATOR = '\n',
   ROWTERMINATOR = '\n'
)  

但我怎么能进入一个特定的栏目?

1 个答案:

答案 0 :(得分:2)

您可以使用format file从源文件中的字段映射到目标表中的字段。

我假设您知道批量插入仅用于插入新行,而不是用于更新。

所以你可能有这样的格式文件:

<?xml version="1.0"?>
<BCPFORMAT 
     xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <RECORD>
  <FIELD ID="1" xsi:type="CharTerm" TERMINATOR="\n"/>
  ... other fields?
 </RECORD>
 <ROW>
  <COLUMN SOURCE="1" NAME="bangla"/>
 </ROW>
</BCPFORMAT>

表'dic'中的任何其他列都需要可以为空或具有默认值。

然后将格式文件指定为BULK INSERT语句的选项

BULK INSERT dic
FROM 'C:\Users\Imon-Bayazid\Desktop\wordddd\good one\test.txt'
WITH
(
   FIELDTERMINATOR = '\n',
   ROWTERMINATOR = '\n',
   FORMATFILE = 'path to my format file.xml'
)