あなたが抱えている問題は、あなたのバージョンでは WHERE 句が UNION 句の最後の Select にのみ適用されていたことだと思います
必要な記録を取る
SELECT 'NRA' AS aml_code, 'Non-Resident Alien' AS aml_desc
UNION
SELECT 'DOM' AS aml_code, 'Resident Alien' AS aml_desc
そして、それらをサブクエリとしてラップします (例では [src] としてエイリアス化されています)。宛先テーブルに一致するキーがないものを確認できます ([dst] としてエイリアス化されています)。
INSERT MTB_AML..tb_aml_codes (aml_code, aml_desc)
SELECT src.aml_code, src.aml_desc
(
SELECT 'NRA' AS aml_code, 'Non-Resident Alien' AS aml_desc
UNION
SELECT 'DOM' AS aml_code, 'Resident Alien' AS aml_desc
) src
WHERE src.aml_code NOT IN (SELECT dst.aml_code from MTB_AML..tb_aml_codes dst)
個人的には、このような左結合でそれを行いますが、それはあなた次第です
INSERT MTB_AML..tb_aml_codes (aml_code, aml_desc)
SELECT src.aml_code, src.aml_desc
FROM
(
SELECT 'NRA' AS aml_code, 'Non-Resident Alien' AS aml_desc
UNION
SELECT 'DOM' AS aml_code, 'Resident Alien' AS aml_desc
) src
LEFT JOIN MTB_AML..tb_aml_codes dst
ON dst.aml_code = src.aml_code
WHERE dst.aml_code IS NULL
どちらも機能しますが、複数列のキーで一致する必要がある場合は、結合方法を使用する必要があります