Триггер SQL Server 2017 - объявление переменной - PullRequest
0 голосов
/ 08 января 2019

Сегодня я впервые работаю на 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

Пожалуйста, не запугивайте меня, этот код - то, что я получаю после прочтения тонны другого потока ...

Я просто не понимаю структуру триггера в SQL Server.

Некоторые используют слово «GO», некоторые даже не используют BEGIN и END, что является ключом в MySQL ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...