簡體   English   中英

使用BULK INSERT插入空格而不是NULL

[英]Inserting empty spaces instead of NULLs with BULK INSERT

我正在使用BULK INSERT將多個寄存器插入數據庫中,該數據庫中已經有數據。 我想知道是否有任何方法可以插入空白而不是NULL,因此插入的數據在視覺上與先前的數據一致。 這是我正在使用的腳本。

BULK INSERT Documentos
FROM '\\Cate-des-tn-032\2015\InsertAWeb_07-05-2019.csv'
WITH (
    FIELDTERMINATOR = ';',
    ROWTERMINATOR = '\n'
)

UPDATE Documentos
    SET FechaCargaLote = CONVERT(VARCHAR(50), GETDATE(), 120)
    WHERE FechaCarga LIKE '%2015%'

這是使用暫存表的方案。 首先將所有數據加載為VarChar()。 然后根據需要將轉換插入到您的實際表中。

設置表:

Create Table #staging_tbl
(
id VarChar(5),
dt VarChar(15)
)

Create Table #actual_tbl
(
id Int,
dt VarChar(10)
)

樣本文件[test.txt]

1;2019-05-12
1;2019-05-11
1;2019-05-10
1;
1;2019-05-08
2;2019-04-19

批量插入

BULK INSERT #staging_tbl
FROM 'c:\Downloads\test.txt' 
WITH 
(
    FIELDTERMINATOR = ';',
    ROWTERMINATOR = '\n'
)

將數據從臨時表移至實際表:將NULL轉換為“空白”

Insert Into #actual_tbl
SELECT 
  id,
  Case When dt Is Null Then '' Else dt End As d
FROM #staging_tbl

查詢實際表

Select * From #actual_tbl

結果:

id  dt
1   2019-05-12
1   2019-05-11
1   2019-05-10
1   
1   2019-05-08
2   2019-04-19

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM