Sql server 是否有一种基于列值大容量插入SQL Server表的方法
我有一个逗号分隔的文件。第一列以H或D开头 例如: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, 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#或任何其他您喜欢的语言读取单个值并将它们插入到您想要的表中。