2015-11-06 4 views
1

Что я пытаюсь сделать, это прочитать текстовый файл, а затем использовать BULK INSERT для создания таблицы.SQL BULK INSERT с условиями

Это пример того, как выглядит текст файла

TIME  DATE   USER_NAME VALUE 

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

Есть много строк, и я имею в виду много, но иногда время пуст или конечный символ не просто войти и я пытаюсь компенсировать это

ли что-то подобное можно:

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