У меня есть две таблицы infirmier
таблица
CREATE TABLE INFIRMIER
(
NUM_INF INT
FOREIGN KEY REFERENCES EMPLOYE(NUM_EMP) ,
CODE_SERVICE VARCHAR(50)
FOREIGN KEY REFERENCES SERVICE(CODE_SERVICE),
ROTATION VARCHAR(50),
SALAIRE MONEY,
PRIMARY KEY (NUM_INF),
);
и service
.
CREATE TABLE SERVICE
(
CODE_SERVICE VARCHAR(50)
PRIMARY KEY (CODE_SERVICE),
NOM_SERVICE VARCHAR(50),
BATIMENT INT,
DIRECTEUR INT
FOREIGN KEY REFERENCES MEDECIN(NUM_MED),
);
Я хочу создать триггер, который будет отображать новый недействительный объект, назначенный на nom_service
после каждой вставки лазарета.
Я также создаю таблицу infirmier_tt
для хранения в ней новой вставки по дате и операции.
CREATE TABLE INFIRMIER_tt
(
change_id INT IDENTITY PRIMARY KEY,
NUM_INF INT,
CODE_SERVICE VARCHAR(50),
ROTATION VARCHAR(100),
SALAIRE MONEY,
NOM_SERVICE VARCHAR(50),
updated_at DATETIME,
operation CHAR(3),
CHECK(operation = 'INS' OR operation = 'DEL')
);
Это код, который я использую
CREATE TRIGGER aff_inff
ON INFIRMIER
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO INFIRMIER_tt(NUM_INF,
--NOM_SERVICE,
CODE_SERVICE, ROTATION, SALAIRE, updated_at, operation)
SELECT
i.NUM_INF ,
-- NOM_SERVICE from INFIRMIER I join SERVICE S on (I.CODE_SERVICE=S.CODE_SERVICE);
CODE_SERVICE,
ROTATION,
i.SALAIRE,
GETDATE(),
'INS'
FROM
inserted i
END
Проблема, с которой я сталкиваюсь, заключается в том, что когда я вставляю новый infirmier
, я не могу вставить название службы nom_service
, потому что в таблице нет infirmier
и пытался использовать join
, но я не знал, как.
Вот результаты, которые я получаю, когда делаю вставку: