c# - 在 SQL Server 中批量插入特定列

标签 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'
)  

但是我怎样才能进入一个特定的列???

最佳答案

您可以使用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'
) 

关于c# - 在 SQL Server 中批量插入特定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14912549/

相关文章:

sql-server - 在 SQL Server 中的查询结果上方添加标题标题

java - 可空孙子关联的左连接提取导致 hibernate 中的 NPE

c# - 具有事件的复合 WPF GUI 界面

c# - Linq 与数据集。全部存储在内存中还是分页查询?

c# - linq 子句中的值不能为空

c# - 从触发器启动对话框

sql - 使用查询显示帖子的层次结构

mysql - SQL:选择对话 GROUP BY 与另一个表中的最后一条记录

database - PostgreSQL 时态数据库中的移动平均值

Java-检查表中的数据集是否已经存在