2012-08-26 35 views
0

我想導入文本file.which包含的記錄角落找尋萬盧比驗證之前bulkinsert在SQL Server

我使用批量插入數據做這樣的

BULK 
INSERT vw_bulk_insert_test 
FROM '\\server\c$\csvtext.txt'--\\server\SQLEXPRESS\csvtest.txt' 
WITH 
(FIRSTROW=2, 
check_CONSTRAINTS, 
FIELDTERMINATOR = '~', 
ROWTERMINATOR = '\n' 
) 
GO 

但插入之前,我想在不使用遊標的情況下驗證每列的值。如果第二行將具有除unit_number(列)之外的所有字段的值,則應創建指定unit_number值的錯誤日誌丟失。

+0

「lac」是一個區域術語,大多數論壇的讀者都不瞭解。 – RBarryYoung

+0

fyi lakhs = 100,000 –

回答

0

你有這樣的語法

BULK INSERT 
    [ database_name . [ schema_name ] . | schema_name . ] [ table_name | view_name ] 
     FROM 'data_file' 
    [ WITH 
    ( 
    [ [ , ] BATCHSIZE = batch_size ] 
    [ [ , ] CHECK_CONSTRAINTS ] 
    [ [ , ] CODEPAGE = { 'ACP' | 'OEM' | 'RAW' | 'code_page' } ] 
    [ [ , ] DATAFILETYPE = 
     { 'char' | 'native'| 'widechar' | 'widenative' } ] 
    [ [ , ] FIELDTERMINATOR = 'field_terminator' ] 
    [ [ , ] FIRSTROW = first_row ] 
    [ [ , ] FIRE_TRIGGERS ] 
    [ [ , ] FORMATFILE = 'format_file_path' ] 
    [ [ , ] KEEPIDENTITY ] 
    [ [ , ] KEEPNULLS ] 
    [ [ , ] KILOBYTES_PER_BATCH = kilobytes_per_batch ] 
    [ [ , ] LASTROW = last_row ] 
    [ [ , ] MAXERRORS = max_errors ] 
    [ [ , ] ORDER ({ column [ ASC | DESC ] } [ ,...n ]) ] 
    [ [ , ] ROWS_PER_BATCH = rows_per_batch ] 
    [ [ , ] ROWTERMINATOR = 'row_terminator' ] 
    [ [ , ] TABLOCK ] 
    [ [ , ] ERRORFILE = 'file_name' ] 
    )] 
1

就個人而言,我將批量插入到一個臨時表,然後做驗證/轉換從臨時表到表中,事情最終會駐留使用任何TSQL或TSQL以爲此創建的存儲過程的形式存在。