Hallo liebe mit Techis,
meine Frage ist folgende.
Ich habe in eine STORED PROCEDURE für eine Aufgabe erstellt zum Testen. Also bitte nicht auf Sinnhaftigkeit der Prozedur beurteilen sondern bitte meinen bereits gefundenen Fehler analysieren. Also hier die Richtige Prozedur:
CREATE OR ALTER PROCEDURE Kopiere @anzahl int AS BEGIN SET IDENTITY_INSERT Artikel_Verlauf ON; INSERT INTO Artikel_Verlauf([Artikel-Nr], Artikelname, Einzelpreis) SELECT * FROM Artikel_Kopie AS ak ORDER BY ak.Einzelpreis DESC OFFSET 0 ROWS FETCH NEXT @anzahl ROWS ONLY SET IDENTITY_INSERT Artikel_Verlauf OFF; END
und hier was ich zuerst hatte:
CREATE OR ALTER PROCEDURE Kopiere @anzahl int AS BEGIN SET IDENTITY_INSERT Artikel_Verlauf ON; INSERT INTO Artikel_Verlauf([Artikel-Nr], Artikelname, Einzelpreis) SELECT * FROM Artikel_Kopie AS ak ORDER BY ak.Einzelpreis DESC OFFSET 0 ROWS FETCH NEXT @anzahl ROWS ONLY SET IDENTITY_INSERT Artikel_Verlauf ON; END
wie evtl. nicht auf den ersten Blick erkennbar habe ich beide SET IDENTITY_INSERT auf ON gestellt.
Dabei wurde beim ausführen der Aufgabe immer 64 Datensätze in die Tabelle eingefügt. Die Aufgabe hatte zum Testen einen 1 Minuten Interval. Ich weiß das die Prozedur eine maximale Verschachtelung durchgeführt hat aufgrund des 2. ON. Aber ich weiß nicht warum das passiert. Mir ist auch klar das wenn das 2. ON auf OFF stelle funktioniert alles wie es soll.
Zusammengefasst würde ich gerne wissen warum der Fehler eine Verschachtelung verursacht, wenn doch ein ON nur in einer Session aktiv ist und danach wieder auf den Default Wert gestezt wird. IIch hoffe die Frage ist verständlich gestellt.
Gruß