В SQL Server (я использую 2016) есть функция Bulk Insert, которая позволяет вставлять записи из плоского файла.
Если поле в плоском файле имеет значение NULL, а поле в SQL Server не помечено, чтобы разрешить нулевые значения, то при групповой вставке при вставке будет использоваться пустая строка.
Есть ли способ переопределить это поведение, чтобы, когда поле было пустым, вместо пустой строки использовалось пустое значение. И потому что поле не установлено в нуль для него, чтобы затем выдать ошибку?
Почему я спрашиваю об этом? Хорошо, потому что поля молча вставляют пустое строковое значение, и я не хочу этого.
ПРИМЕЧАНИЕ : я строго имею в виду использование T-SQL с использованием BULK INSERT (не bcp или любым другим способом)
ПРИМЕЧАНИЕ : я видел Сохранить пустые значения или использовать значения по умолчанию при массовом импорте (SQL Server) , то, что я здесь описал, я не смог найти в этом документе. Если вы считаете, что это включает в себя то, что я ищу, укажите, что мне не хватает, вместо того, чтобы направить меня к этому документу. Спасибо.
ПРИМЕЧАНИЕ : Вот простой пример (обратите внимание, что я работаю не с таблицей, а с простым примером, чтобы прояснить ситуацию)
Определение таблицы:
CREATE TABLE [dbo].[TableOne](
[Id] [int] NOT NULL,
[Name] [varchar](10) NOT NULL
)
Команда массовой вставки
BULK
INSERT TableOne
FROM 'R:\TableOne.txt'
WITH(
DATAFILETYPE = 'widechar',
FIELDTERMINATOR = '\t',
ROWTERMINATOR = '\n'
)
Файл
1
Таким образом, в основном в этом примере это: 1 [Tab] [CRLF], где второй столбец - имя, и это нуль.
Результат