Вставка пустых пробелов вместо NULL с помощью BULK INSERT - PullRequest
0 голосов
/ 13 мая 2019

Я использую 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%'

1 Ответ

1 голос
/ 13 мая 2019

Вот сценарий использования промежуточной таблицы.Сначала загрузите все данные как 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...