仅根据条件将某些记录导入SQL Server数据库

时间:2014-09-13 16:58:16

标签: sql sql-server csv

在上一个问题中,我问过如何从csv文件导入sql server中的前1000行。 Link to my previous question

现在我想知道是否可以根据某个标准仅导入某些记录。例如,我的csv文件中的一列称为Style。我想导入风格等于" ALE22"。

的所有记录

这是迄今为止对我有用的代码,

USE MyDB
BULK INSERT MyTable
FROM 'C:\Users\jasons\Desktop\Documents\MyFile.csv'
WITH(
FIRSTROW = 2,
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n',
LASTROW = 1002
)

1 个答案:

答案 0 :(得分:1)

您可以使用openrowset批量提供程序在一个语句中执行此操作,但您必须指定一个格式文件来描述列名和分隔符。

insert into x (
    v1, v2
) select top 1000
    *
from
    openrowset(bulk 'C:\Users\jasons\Desktop\Documents\MyFile.csv',
        formatfile = 'path_to_ff',
        firstrow = 2
    ) x
where
    x.Style = 'ALE22';

您还可以调查openrowset的文字提供程序。