Sql server 是否有一种基于列值大容量插入SQL Server表的方法

Sql server 是否有一种基于列值大容量插入SQL Server表的方法,sql-server,bulkinsert,Sql Server,Bulkinsert,我有一个逗号分隔的文件。第一列以H或D开头 例如: H, 1, 2, 3, 4 D, 9, 10, 11, 12 我希望能够将所有H记录插入表HTemp中,并将D记录插入另一个表DTemp 我该怎么做呢 我目前不知道如何处理这个问题。例如,要根据第一个单元格值=H添加到HTemp,但我不知道如何判断单元格值是否等于H: BULK INSERT HTemp FROM 'C:\CSVData\Temp.csv' WITH ( FIELDTERMINATOR = ',', --CSV fi

我有一个逗号分隔的文件。第一列以H或D开头

例如:

H, 1, 2, 3, 4
D, 9, 10, 11, 12
我希望能够将所有
H
记录插入表
HTemp
中,并将
D
记录插入另一个表
DTemp

我该怎么做呢

我目前不知道如何处理这个问题。例如,要根据第一个单元格值=H添加到
HTemp
,但我不知道如何判断单元格值是否等于H:

BULK INSERT HTemp
FROM 'C:\CSVData\Temp.csv'
WITH
(
    FIELDTERMINATOR = ',',  --CSV field delimiter
    ROWTERMINATOR = '\n',   --Use to shift the control to next row
    TABLOCK
)

我不知道如何告诉它使用第一个单元格值来确定要插入到哪个表中。

您可以在Windows上使用findstr将D和记录分离到两个单独的文件中,然后使用bcp将数据复制到单独的表中。

插入到单个表中(新表)然后使用两个insert语句进行拆分到每个表的工作。我使用的是SQL Server。我同意@jnevil,首先将所有内容转储到一个表(临时表)中,然后再将其排序到两个表中。
CSV
表示非常具体的内容。在CSV文件中,每行没有多个
H
记录,只有一行以
H
开头<代码>大容量插入也非常具体,它是一个快速将数据从文件导入表的过程,无需转换。您所描述的完全不同如果所有行包含相同数量的字段,您可以将它们插入到暂存表中,并使用SQL进行转换。一个更简单的选择是编写自己的代码,例如用C#或任何其他您喜欢的语言读取单个值并将它们插入到您想要的表中。