ingoeff 10 Geschrieben 14. März 2011 Melden Teilen Geschrieben 14. März 2011 Hallo, wer kann hier weiterhelfen, Der trigger funzt nicht, es gibt keine Fehlermeldung, es passiert einfach nichts. Ich öffne Table_1 ändere das Gewicht und dieser neue wert sollte dann in TableOrg erscheinen, macht er aber nicht. Ich habe in derselben DB, zwei weitere Tabellen ziwchen dnene auch ein trigger gesetzt ist. Dieser hat denselben Aufbau, dieselbe Anzahl von variabln, Spalten,Datentyp, hier funzt der Trigger. Der einzige Unterschied ist, diese beiden Tabellen waren schon in der Datenbank. Die beiden bei denen es nicht klappt, habe ich heute selbst angelegt. So sieht der Code aus: Create Trigger [dbo].[TriggTest ] ON [dbo].[Table_1] for insert, update as Begin DECLARE @InsertetPK Int DECLARE @DeletePK Int DECLARE @InsertetGW1 SmallInt DECLARE @DeleteGW1 SmallInt SELECT @InsertetPK = inserted.IDNr from inserted SELECT @DeletePK = deleted.IDNr from deleted SELECT @InsertetGW1 = inserted.GW1 from inserted SELECT @DeleteGW1 = deleted.GW1 from deleted UPDATE TableOrg SET Gewicht=@InsertetGW1 WHERE @InsertetPK = IDNr And @DeleteGW1=Gewicht End Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 15. März 2011 Melden Teilen Geschrieben 15. März 2011 So auf den ersten Blick: Gehört das Leerzeichen zwischen TriggTest und ] wirklich rein, oder ist das nur hier ein Übertragungsfehler? Zitieren Link zu diesem Kommentar
ingoeff 10 Geschrieben 15. März 2011 Autor Melden Teilen Geschrieben 15. März 2011 (bearbeitet) Danke für den Tipp das Leerzeichen soll da nicht sein, hab eben nachgesehen und es weggemacht(mit wurde der sting aber auch sauber ausgeführt) Aber, es bleibt dabei, kein error, es tut sich einfach nichts Ich hab alles was SQL Server im Namen hat nochmal deistalliert, dann den 2005 wieder neu und das SP2 hinterher, habe nicht viel davon erhofft, aber wie es manchmal so ist. Es bleibt aber dabei, der Tigger macht nichts Noch ein Hinweis zum doppel von gestern, das war kein absicht, es sah für einen moment so aus, als wäre nichts abgesendet bearbeitet 15. März 2011 von ingoeff Hinweis zu doppelposting Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 15. März 2011 Melden Teilen Geschrieben 15. März 2011 Beim SQL 2005 ist das SP4 aktuell. Hast Du dich mit SP2 nur verschrieben oder ist das Absicht? Zitieren Link zu diesem Kommentar
ingoeff 10 Geschrieben 17. März 2011 Autor Melden Teilen Geschrieben 17. März 2011 danke für den Tipp, SP4 ist installiert, aber der Trigger macht nichts. Noch ein Zusatz, es lüft auf WinVista, es gibt auf der Maschine nur diesen SQL-Server kein weiteren, auch kein oracle oder andere. der Server hat nur eine Datenbank(neben den Systemdbs). Zitieren Link zu diesem Kommentar
Greg 10 Geschrieben 18. März 2011 Melden Teilen Geschrieben 18. März 2011 Hallo Ingoeff Schau mal nach ob der Trigger deaktiviert ist: USE [DEINE DB] SELECT name , type_desc , create_date , modify_date , is_disabled FROM sys.triggers Gruss Gregory Zitieren Link zu diesem Kommentar
ingoeff 10 Geschrieben 18. März 2011 Autor Melden Teilen Geschrieben 18. März 2011 Hallo Greg, die Splate disabled hat den Eintrag 0 Zitieren Link zu diesem Kommentar
ingoeff 10 Geschrieben 19. März 2011 Autor Melden Teilen Geschrieben 19. März 2011 Vielleicht lohnt es an der Stelle weiter zu gehen. Geh ich auf 'Eigenschaften' der Tabellen, dann 'Berechtigungen' gibt es keine 'expliziten' Berechtigungen, alle haben dort nur den Eintrag für Schema:dbo. Dbo ist mitglied der Rolle db_owner, sollte doch OK sein, oder ? Soweit ich sehen kann mit meinem besch wissen überdiese dinge, haben alle Tabellen in dieser Db dieselben Rechte. Hab ich hier vielleicht was übersehen? Zitieren Link zu diesem Kommentar
ingoeff 10 Geschrieben 22. März 2011 Autor Melden Teilen Geschrieben 22. März 2011 Ich habe das ganze jetzt auf einer Windows7 Maschine versucht, klappt alles. Es ist dieselbe Datenbank(per anfügen) dieselben Tabellen, auch hier msSqlServer 2005 aber alles noch ohne SPs, auf beiden maschinen gibt es nur dei windows-anmeldung, also kein gemischter modus Wenn doch noch jemand einen tipp hat wie sich der ursache nähern kann, wär ich sehr froh Zitieren Link zu diesem Kommentar
DieterI 10 Geschrieben 14. April 2011 Melden Teilen Geschrieben 14. April 2011 hast Du den Logging an? Zitieren Link zu diesem Kommentar
ingoeff 10 Geschrieben 4. Mai 2011 Autor Melden Teilen Geschrieben 4. Mai 2011 Hi Dieter, ich weiss nicht was das bedeutet Logging, kann mich nicht erinnern, dass ich damit oder irgend ähnlichem schon mal zu tun hatte Zitieren Link zu diesem Kommentar
ingoeff 10 Geschrieben 26. Mai 2011 Autor Melden Teilen Geschrieben 26. Mai 2011 ich konnte das ganze nun auch auf WinXp testen, verhält sich genauso wie auf Vista. Nur auf Win7 klappte es. Auf allen drei Windows-Versionen, hab ich dasselbe Serverpaket installliert, immer Standardinstallation. Was Loggin ist, weiss ich noch nicht, aber bei den Installationen kam das nicht vor. Zitieren Link zu diesem Kommentar
ingoeff 10 Geschrieben 14. Juni 2011 Autor Melden Teilen Geschrieben 14. Juni 2011 Bei logging geht es um das Transaktionsprotokoll, mit dieser Anweisung kann man es deaktivieren ALTER DATAbase [Datenbankname]* SET RECOVERY SIMPLE Wie man es wieder aktiviert, fehlt noch Letztlich hats aber nichts gebracht. Was die Sache vielleicht aufhellt, ich habe eine Winform.Net Applikation. Diese kann Tabellen anlegen und Trigger erzeugen. Diese Trigger funktionieren auch(Win7, WinVista auch auf WinXp). Die App meldet sich am Server an, mit demselben Usernamen den ich habe, wenn ich mit dem SQL Server Managment Studio zugreife. Noch etwas, was Licht ins Dunkel bringen könnte. Die beiden manuell angelgten Tabellen, haben je nur eine Zeile. Wenn die Spalte, die ich ändere, in beiden Tabellen denselben Wert hat, kommt diese Meldung: "... machen die Zeile nicht eindeutig oder ändern mehrere Zeilen...". Diese Message ist mir nicht unbekannt, gerade deshalb erwarte ich bei Ungleichheit der Werte, dass die Änderung Tabelle ankommt. Weil eben -> nur ein Zeile ->PrimaeKey in beiden gleich -> also muss es doch ankommen Zitieren Link zu diesem Kommentar
hh2000 10 Geschrieben 13. August 2011 Melden Teilen Geschrieben 13. August 2011 Hallo,... SELECT @InsertetPK = inserted.IDNr from inserted SELECT @DeletePK = deleted.IDNr from deleted ... End Der Weg über Variablen ist so leider nicht korrekt (was soll in @DeletePK enthalten sein, wenn 2 Sätze gleichzeitig geändert werden ?). Du musst ggf. die Tabellen inserted, deleted, TableOrg passend joinen. Dabei solltest Du in einem Trigger immer berücksichtigen, dass a) kein Satz b) ein Satz c) oder mehrere Sätze upgedated werden könnten. z.B.: UPDATE TableOrg SET Gewicht=inserted.gw1 FROM TableOrg INNER JOIN inserted ON TableOrg.IDNr = inserted.IDNr Vorausgesetzt Deine Tabelle die den Trigger enthält und TableOrg enthalten die gleichen Datensätze mit den gleichen IDNrn, so wird der geänderte Wert auch in TableOrg geändert. Gruß Kai Zitieren Link zu diesem Kommentar
ingoeff 10 Geschrieben 28. September 2011 Autor Melden Teilen Geschrieben 28. September 2011 @hh2000 ich konnte das Problem, sagen wir, beheben. Richtig happy bin ich damit noch nicht. Wenn es um mehrere DS geht hast du recht. Ich glaubte aber Ursache ist das neue Rechtesystem von 2005 im vergl mit 2000, deswegn wollte ich prinzipiell Trigger ans laufen kriegen, die so aussehn wie sie von der angesprochen App erzeugt werden. Ich hatte dort übersehen, der Trigger, der erzeugt wird, ist für zwei Tabellen die je einen Primärkey haben. Ich hatte der Table_1 keinen gegben nur TableOrg hatte einen. Und die Ursache dafür, dass manchmal nichts passiert, ergab sich natürlich aus dem WHERE Teil . Wenn das gewicht1 ungleich ist dem GewichtOrg, wird auch keine Änderung übertragen. Wenn ich den gesamten UPDATE so schreibe: UPDATE TableOrg SET Gewicht=@InsertetGW1 WHERE @InsertetPK = IDNr klappts auch hier. Das wahre ist das noch nicht. Wiso klappt das wenn Table_1 auch einen Primärkey hat. Beide Tabell haben je nur einen Datensatz Wo kann ich sehen welche Werte die Variabln haben? Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.