Сегодня я впервые работаю на SQL Server, обычно я использую MySQL.
Я немного искал, но просто не понимаю.
Вот код:
CREATE TRIGGER "PREMI_after_insert"
ON "PREMI"
AFTER INSERT
AS
DECLARE @umur INT
SELECT
@umur = DATEDIFF(YEAR, CAST(GETDATE() AS DATE),
(CASE
WHEN ISNUMERIC(SELECT NoTerdaftar FROM inserted) = 1
THEN (SELECT CAST(TglLahir AS DATE)
FROM KARYAWAN
WHERE NoPegawai = (SELECT NoTerdaftar FROM inserted))
ELSE (SELECT CAST(TglLahir AS DATE)
FROM KELUARGA
WHERE NoPeserta = (SELECT NoTerdaftar FROM inserted))
END))
DECLARE @plafond DECIMAL(20,0)
SELECT @plafond = (CASE
WHEN ISNUMERIC(SELECT NoTerdaftar FROM inserted) = 1
THEN (SELECT Plafond
FROM KARYAWAN
WHERE NoPegawai = (SELECT NoTerdaftar FROM inserted))
ELSE (SELECT Plafond
FROM KELUARGA
WHERE NoPeserta = (SELECT NoTerdaftar FROM inserted))
END)
DECLARE @rat DECIMAL(7,6)
SELECT @rat = RE.Rate
FROM RATES RE
WHERE RE.KodeAsuransi = (SELECT JenisAsuransi FROM ASURANSI
WHERE Id = (SELECT ID_Asuransi FROM inserted))
AND @umur BETWEEN RE.UsiaMin AND RE.UsiaMax
BEGIN
UPDATE PREMI
SET JumlahPremi = (@plafond * @rat)
WHERE Id = (SELECT Id FROM insterted)
END;
и это ошибка
![enter image description here](https://i.stack.imgur.com/1GlR7.png)
Пожалуйста, не запугивайте меня, этот код - то, что я получаю после прочтения тонны другого потока ...
Я просто не понимаю структуру триггера в SQL Server.
Некоторые используют слово «GO», некоторые даже не используют BEGIN и END, что является ключом в MySQL ....