Trigger ON Таблица, которая запускает INSERT в другую таблицу с ограничением NOT NULL, имеющим тип данных float - PullRequest
0 голосов
/ 23 ноября 2018
CREATE TRIGGER studenttr ON tstudentlog
AFTER INSERT 
AS
BEGIN

INSERT INTO TABLE tstudent(sname, marks)
SELECT sname,marks FROM INSERTED


END

Структура tstudent

CREATE TABLE tstudent
(
name VARCHAR(20),
marks FLOAT NOT NULL

)

ALTER TABLE tstudent ADD  DEFAULT (0) FOR marks

Когда я не передаю данные в столбце меток ПРИ ВСТАВКЕ записи в tstudentlog

Я получаю ошибку:

Невозможно вставить значение NULL в столбец 'marks', таблица 'tstudent';столбец не допускает пустых значений.Вставить не удается.Оператор был прерван.

Я попробовал следующее, но не сработало

INSERT INTO TABLE tstudent(sname)
  SELECT sname
  FROM INSERTED
  where marks is null;

Я хотел передать таблицу значений NULL tstudent И хотел, чтобы эти ситуации обрабатывались с помощью 'DEFAULTЦенности хранятся в tstudent '

Как мне этого достичь?

1 Ответ

0 голосов
/ 23 ноября 2018

У меня было много проблем со значениями по умолчанию в таблице. Можно было бы использовать coalesce в операторе вставки?

CREATE TRIGGER studenttr ON tstudentlog
AFTER INSERT 
AS
BEGIN

INSERT INTO TABLE tstudent(sname, marks)
SELECT sname,coalesce(marks,0) FROM INSERTED


END
...