IDENTITY_INSERT ist für Tabelle 'X' bereits aktiviert. SET-Operation für Tabelle 'Y' kann nicht ausgeführt werden

Ich habe einen Trigger erstellt, der eine Überprüfung durchführt und Daten automatisch in zwei Tabellen auffüllt. Nur was passiert ist folgender Fehler:

IDENTITY_INSERT is already ON for table 'X'. Cannot perform SET operation for table 'Y'.

Ich habe dies gefunden, als ich den Fehler recherchiert habe:

Msgstr "Die IDENTITY_INSERT - Eigenschaft kann zu jedem Zeitpunkt nur für eine Tabelle in einer Sitzung auf ON gesetzt sein."

Die Lösung war also einfach:

SET IDENTITY_INSERT Table1 ON
-- insert statements for table1
SET IDENTITY_INSERT Table1 OFF

SET IDENTITY_INSERT Table2 ON
-- insert statements for table2
SET IDENTITY_INSERT Table2 OFF

SET IDENTITY_INSERT Table3 ON
-- insert statements for table3
SET IDENTITY_INSERT Table3 OFF

Da die Daten jedoch per Trigger gefüllt werden, ist dies nicht möglich.

Hat jemand bitte eine Lösung für mein Problem?

Ich entschuldige mich.

Danke euch allen.

Auslösen-----

CREATE TRIGGER Alert ON registos AFTER INSERT AS
BEGIN

DECLARE @comp decimal = 0
DECLARE @id_sensores_em_alerta decimal
DECLARE @tempmin decimal = 0
DECLARE @current_max_idAlarme int = (SELECT MAX(IdAlarme) FROM alarmes)
DECLARE @maxidAlarme int
DECLARE @temp decimal = (SELECT s.lim_inf_temp  from sensores s JOIN inserted i ON s.idSensor=i.idSensor )


-- Insert into alarmes from the inserted rows if temperature less than tempmin
INSERT alarmes (IdAlarme, descricao_alarme,data_criacao, idRegisto)
    SELECT
    ROW_NUMBER() OVER (ORDER BY i.idRegisto) + @current_max_idAlarme, 'temp Error', GETDATE(), i.idRegisto
    FROM
inserted AS i
    WHERE
i.Temperatura < @temp

SET @maxidAlarme = (SELECT MAX(IdAlarme) FROM alarmes)

INSERT INTO sensores_tem_alarmes(idSensor,idAlarme,dataAlarme) 
SELECT i.idSensor, @maxidAlarme, GETDATE()
FROM inserted i
SET @comp += 1;


SET @id_sensores_em_alerta=1;

SET  @id_sensores_em_alerta = (SELECT MAX(id_sensores_em_alerta)  FROM sensores_em_alerta)

INSERT INTO sensores_em_alerta(id_sensores_em_alerta, idSensor, idAlarme, data_registo, numerosensoresdisparados) 
SELECT @id_sensores_em_alerta, i.idSensor, @maxidAlarme, GETDATE(), @comp
FROM inserted i
end

Datenbank----

Antworten auf die Frage(2)

Ihre Antwort auf die Frage