Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Триггер вставляет дату 01.01.1900 если отсутствуют данные  [new]
ypmail
Member

Откуда:
Сообщений: 331
Триггер написан в программной оболочке. Он ищет уже имеющиеся данные в базе по полю VIN и вносит их в таблицу. Все поля, если есть данные - заполняются автоматически, если нет - имеют пустые значения, кроме дат. Даты при отсутствии данных не пустые, а имеют вид: 01.01.1900. При добавлении новой строки все поля 100% пустые, но после сработки триггера даты не пустые.
Помогите разобраться в чём проблема? В коде триггера (может для дат пустое значение задаётся не как '' а по-другому?), в типе поля базы (скрин) или в программной оболочке?

UPDATE qdfCarInfo
SET Model = ISNULL(t1.Model, ''),
       Marka = ISNULL(t1.Marka, ''),
       StateNumber = ISNULL(t1.StateNumber, ''),
       EngineCode = ISNULL(t1.EngineCode, ''),
      GearboxCode = ISNULL(t1.GearboxCode, ''),
      DProduction = ISNULL(t1.DProduction, ''),
      DDelivery = ISNULL(t1.DDelivery, '')
 FROM (SELECT TOP 1 * from qdfCarInfo WHERE VIN=<VIN> AND ID<><ID> ORDER BY ID DESC) AS t1
 WHERE qdfCarInfo.ID=<ID>


К сообщению приложен файл. Размер - 127Kb
29 янв 16, 08:30    [18743698]     Ответить | Цитировать Сообщить модератору
 Re: Триггер вставляет дату 01.01.1900 если отсутствуют данные  [new]
ypmail
Member

Откуда:
Сообщений: 331
Разобрался.
Во-первых, где даты нужно задавать значения по умолчанию в триггере NULL вместо ''
Во-вторых, когда я игрался с галками пустых значений в базе, какое-то пустое значение заменилось на 01.01.1900. При срабатывании триггера оно и подтягивалось. Я долго мучился с разными настройками, а нужно было просто все значения 01.01.1900 вернуть к пустым, тогда при сработке триггера ничего такого не подтянется.
Вопрос решен, тему можно закрыть или удалить.
29 янв 16, 08:49    [18743760]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить