Deleted
- это таблица (псевдотаблица), которая может содержать несколько строк, некоторые из которых могут иметь ProfID = 3
, а некоторые - ProfId <> 3
. Это должно быть обработано. Также реляционные базы данных предназначены для операций на основе набора, а не процедурных. Ваш лог c может быть встроен в один оператор вставки с соответствующим предложением where
. Следующее воспроизводит то, что вы показали выше:
INSERT INTO tblPartLic (idsNumber, txtLicNumber, txtState, txtProfOrg, idsCountry, idsState, idsProf)
SELECT D.idsDASNumber, 'AR NL', 'NL', 'Architect', 208, 70, 3
FROM Deleted D
-- Condition 1 - ProfID = 3
WHERE D.ProfID = 3
-- Condition 2 - No existing record in tblPartLic
AND NOT EXISTS (
SELECT PL.idsNumber
FROM tblPartLic PL
WHERE PL.idsProfession = 3 AND PL.idsState <> 70
AND PL.idsNumber = D.idsNumber
);