¿Cómo emular un desencadenador BEFORE INSERT en T-SQL / SQL Server para entidades de supertipo / subtipo (herencia)?

Esto está en Azure.

Tengo una entidad de supertipo y varias entidades de subtipo, la última de las cuales necesita obtener sus claves externas de la clave principal de la entidad de supertipo en cada inserción. En Oracle, uso unBEFORE INSERT gatillo para lograr esto. ¿Cómo se lograría esto en SQL Server / T-SQL?

DDL

CREATE TABLE super (
 super_id int IDENTITY(1,1)
 ,subtype_discriminator char(4) CHECK (subtype_discriminator IN ('SUB1', 'SUB2')
 ,CONSTRAINT super_id_pk PRIMARY KEY (super_id)
);
CREATE TABLE sub1 (
 sub_id int IDENTITY(1,1)
,super_id int NOT NULL
,CONSTRAINT sub_id_pk PRIMARY KEY (sub_id)
,CONSTRAINT sub_super_id_fk FOREIGN KEY (super_id) REFERENCES super (super_id)
);

Deseo un inserto ensub1 para disparar un gatillo que en realidad inserta un valor ensuper y usa elsuper_id generado para poner ensub1.

En Oracle, esto se lograría por lo siguiente:

CREATE TRIGGER sub_trg
    BEFORE INSERT ON sub1
    FOR EACH ROW
DECLARE
    v_super_id int; //Ignore the fact that I could have used super_id_seq.CURRVAL
BEGIN
    INSERT INTO super (super_id, subtype_discriminator) 
        VALUES (super_id_seq.NEXTVAL, 'SUB1') 
        RETURNING super_id INTO v_super_id;
    :NEW.super_id := v_super_id;
END;

Por favor avise sobre cómo simularía esto en T-SQL, dado que T-SQL carece de laBEFORE INSERT ¿capacidad?

Respuestas a la pregunta(2)

Su respuesta a la pregunta