MS SQL 2K, 2 Fragen: 1. Frage Ich habe eine (nicht von mir erstellte) Datenbank, in der verschiedene Aufgaben mit Triggern erledigt werden. Nun bestand ein Auftrag, einen Insert-Trigger zu bauen, der eine Bezeichnung eines Vorgangs zusammenschraubt. Im laufe dieser Aufgabe bin ich auf ein paar Probleme gestossen:
Der Insert Trigger erf�llte seine Aufgabe nicht. Der Trigger war in etwa so aufgebaut: Create Trigger BLABLA.... For INSERT DECLARE @ActualID SELECT @ActualID = lid FROM Inserted Update Tabelle Set Wert = /*Zussamenschraub*/ WHERE lid = @ActualID Die Ausf�hrende Zeile lief bei Tests ausserhalb des Triggers, und aufgerufen wurde er auch, da ich versuchsweise @ActualID in eine Testtabelle davor und noch einmal danach wegschrieb. F�r die betreffende Tabelle wurde zuvor von anderer Stelle ein Update und Insert -Trigger eingerichtet, der mehrere Felder untereinander abgleicht: Etwa Update Tabelle Set Wert1 = Wert2 Update Tabelle Set Wert3 = Wert4 Update Tabelle Set Wert5 = Wert6 Welchen ich auch versuchsweise auf reines Update eingestellt habe. Das die Updates oben anderst formuliert werden sollten (Update Tabelle Set Wert1 = Wert2 WHERE Update Tabelle Set NOT Wert2 = Wert1) werde ich dem Ersteller noch mitteilen, Ich habe den eigentlich f�r Select vorgesehen Teil nun in diesen Trigger Integriert und nach Update Tabelle Set Wert = /*Zussamenschraub*/ WHERE Wert IS NULL umformuliert, was soweit auch funktioniert. Nur, wieso konnte ich den Trigger nicht seperat einrichten? Die 2. Frage ist allgemeinerer Natur, betrifft aber auch dieses Beispiel. Ich stosse �fter auf das Problem fortlaufender Nummern, bei Imports aus anderen Tabellen behelfe ich mir mit tempor�ren Tabellen mit einer Identity Spalte, In diesem Trigger ist dies jedoch nicht m�glich, da sich die Bezeichnung folgendermassen zusammensetzt: MandantID (3 Stellig) + Monat(2 Stellig) + Jahr(2 Stellig) + laufende Nr. (die sich auf den ersten 7 Stellen bezieht. Also z.B.: 02302041 02302042 02102041 06502041 02102042 Ich berechne den ersten Teil, Z�hle das ganze, addiere zum Ergebnis 1 und setzte so die neue laufende Nr. ein. Da ich f�r den Update Trigger das ganze Set-based mache (also mehrere solcher werte mit einem Update Befehl machen will) z�hlt der allerdings nur die vor dem Update Befehl vorhandenen und z�hlt sie nich hoch. Nun kann ich das mit einem Cursor l�sen, was mir aber f�r einen Trigger eigentlich zuviele Ressourcen Frisst. Kennt jemand eine bessere L�sung? Gru�, Andreas _______________________________________________ Database.asp mailing list [EMAIL PROTECTED] http://www.glengamoi.com/mailman/listinfo/database.asp
