Я провел небольшой тест, создал таблицу со столбцом, который имел значение по умолчанию, но не допускал нулевые значения.
Тогда этот оператор SQL:
INSERT INTO [Test].[dbo].[Table_1]
([TestText])
VALUES
(null)
Дает эту ошибку:
Сообщение 515, уровень 16, состояние 2, строка 1
Невозможно вставить значение NULL в столбец «TestText», таблица «Test.dbo.Table_1»;столбец не допускает пустых значений.INSERT завершается неудачей.
Проблема здесь в том, что вставка задает все столбцы, в том числе со значениями по умолчанию.Вставка пытается обновить столбцы с нулевыми значениями.
У вас есть 2 варианта:
- Обновить таблицу через представление, которое не содержит столбцы по умолчанию
- Установите значения по умолчанию в вашем коде C #
Значением по умолчанию является бизнес-логика, поэтому есть случаи, когда оно задается на бизнес-уровне вашего приложения.