Ich habe einen Trigger erstellt, der eine Überprüfung durchführt und Daten automatisch in zwei Tabellen auffüllt. Nur was passiert der folgende Fehler:
%Vor%Ich habe dies während der Untersuchung des Fehlers gefunden:
"Zu jeder Zeit kann nur eine Tabelle in einer Sitzung die IDENTITY_INSERT-Eigenschaft auf ON gesetzt haben."
Die Lösung war also einfach:
%Vor%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öser -----
%Vor%Datenbank ----
Erlauben Sie SQL Server, die Identitätswerte automatisch für Sie einzufügen. Da dies ein Trigger ist, können mehrere Zeilen gleichzeitig eingefügt werden. Für Ein-Zeilen-Einfügungen können Sie SCOPE_IDENTITY()
function ( Ссылка ) verwenden, um den Identitätswert abzurufen Ihrer letzten eingefügten Zeile. Allerdings , da wir mehrere Zeilen in einen Trigger einfügen könnten, verwenden wir die OUTPUT
-Klausel ( Ссылка ), um eine Liste der eingefügten IdAlarme
-Werte für jede idRegisto
zu erhalten.
Ich nehme an, dass alarmes.IdAlarme
und sensores_em_alerta.id_sensores_em_alerta
die beiden Identitätsfelder in diesem Trigger sind. Wenn dies der Fall ist, sollte dies funktionieren:
Ich hatte ein ähnliches Problem, aber es gab keine Tabellenauslöser. Ich habe ein Skript ausgeführt, das Daten für mehrere Tabellen aktualisiert, und ich habe einen Fremdschlüssel-Referenzfehler gefunden.
Nach MSDN :
Zu jeder Zeit kann nur eine Tabelle in einer Sitzung IDENTITY_INSERT haben Eigenschaft auf EIN gesetzt.
Um dies zu beheben, habe ich SET IDENTITY_INSERT [dbo].[table_name] OFF
für jede Tabelle ausgeführt, in die ich einfügen wollte. Dann konnte ich meine Tabellen wieder auffrischen, nachdem ich den Referenzfehler korrigiert hatte.
Bearbeiten: Ich sollte auch erwähnen, dass Sie einfach trennen und dann wieder verbinden können, um Ihre Sitzung zurückzusetzen.
Tags und Links sql sql-server