2015-11-06 131 views
1

我想要做的是读取文本文件,然后使用BULK INSERT创建表。带条件的SQL BULK INSERT

这是文本文件的外观

TIME  DATE   USER_NAME VALUE 

11:10:04 10/02/15  Irene I.  Moosa 

有很多行的例子,我的意思是很多,但有时候时间为空或结束符不只是一个简单的输入和我“M试图弥补它

是这样的可能:

BULK INSERT #TEMP FROM 'C:\QPR_Logs\Audit\MetricsServerAudit.txt' 
WHERE [TIME] IS NOT NULL WITH (FIELDTERMINATOR =' ', ROWTERMINATOR = '\n') 

类似的东西,如果它读取空值,它只是跳过行了? 对于结束字符,我不确定要使用什么。 有没有人有任何建议?

+0

'BULK INSERT #temporary ....; INSERT INTO #temp SELECT ... FROM #temporary WHERE ....' – lad2025

回答

0

尝试OPENROWSET。既然你有自定义的行/列终结符,你可能需要一个格式文件。

select t1.* 
from openrowset(bulk 'c:\folder\file1.csv' 
     , formatfile = 'c:\folder\values.fmt' 
     , firstrow = 2) as t1 
where t1.[TIME] is not null