SQL BULK INSERT有条件

时间:2015-11-06 08:56:44

标签: sql sql-server tsql

我尝试做的是阅读文本文件,然后使用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')

如果它读取一个空值而它只是跳过该行,那会是什么? 对于最终角色,我不确定要使用什么。 有没有人有任何建议?

1 个答案:

答案 0 :(得分:0)

试试OPENROWSET。由于您有自定义行/列终止符,因此可能需要格式文件。

Dim datetest As Long
Dim arfest As Variant
Dim UR As Range
Dim i As Long

' Read the values into the variant array
With ThisWorkbook.Worksheets("Fest")
    Set UR = .Cells(.Rows.Count, "A").End(xlUp)
    arfest = .Range("A1", UR).Value2
End With

datetest = DateValue(DateSerial(Year:=2015, Month:=2, Day:=5))

'Loop through the array, checking each date value
For i = 1 To UBound(arfest, 1)
    If arfest(i, 1) = datetest Then
        MsgBox DateValue(CDate(arfest(i, 1)))
    End If
Next