在上一个问题中,我问过如何从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
)
答案 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
的文字提供程序。