Reinhold Geschrieben 24. April 2008 Teilen Geschrieben 24. April 2008 Moin, heute komme ich mal irgendwie nicht so richtig weiter. Es geht darum, dass ich Trigger für einige Tabellen brauche (ggf. ziemlich viele) die alle Änderungen protokollieren sollen. Darum muss das so variabel wie möglich sein. SET @SQL = 'DECLARE SPALTENCURSOR CURSOR FOR SELECT C.name FROM syscolumns C INNER JOIN sysobjects O ON C.id = O.id WHERE O.name = N''' + @TABELLE + ''''; EXEC(@SQL); OPEN SPALTENCURSOR; FETCH NEXT FROM SPALTENCURSOR into @SPALTE; WHILE @@FETCH_STATUS = 0 BEGIN SET @WERTNEU = 'Select ' + @SPALTE + ' from inserted'; SET @WERTALT = 'Select ' + @SPALTE + ' from deleted'; -- -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -- das hier drüber geht so leider und vielleicht auch logischerweise nicht. -- -- hier kommt dann irgendwann ein geniales Insert-Statement ins Protokoll -- FETCH NEXT FROM SPALTENCURSOR into @SPALTE; END CLOSE SPALTENCURSOR; DEALLOCATE SPALTENCURSOR; Kennt da jemand einen Trick? :confused::confused::confused::confused: Reinhold Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 24. April 2008 Teilen Geschrieben 24. April 2008 Wir haben auch auf so ziemlich allen Tabellen (ca. 250) Trigger. Allerdings generieren wir die ausserhalb der Datenbank während des Build Prozesses und spielen sie dann in die DB ein. Im Trigger irgendwas aus Systemviews dynamisch zu ermitteln ist viel zu unperformant. Dim Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Reinhold Geschrieben 25. April 2008 Autor Teilen Geschrieben 25. April 2008 Moin, Im Trigger irgendwas aus Systemviews dynamisch zu ermitteln ist viel zu unperformant. das sehe ich genau so, aber das Problem ist, dass ich die Spalten nicht weiss, genauer gesagt, die User können eigene Spalten anlegen, die dann logischerweise auch protokolliert werden müssen. Und ich befürchte, dass da sonst kein Mensch mehr die Trigger im Auge hat. Hast du einen Tipp, wie es, wenn auch unperformant, gehen könnte? Gruß Reinhold Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 25. April 2008 Teilen Geschrieben 25. April 2008 Die User können in Produktion selbst Spalten anlegen? An jeder Versionsverwaltung, Revision etc. vorbei? Ich würd mal sagen, das ist dann dein größtes Problem und sollte angegangen werden. Ansonsten kann ich dir leider nicht weiterhelfen, da ich mit MSSQL (zum Glück ) noch nie was machen musste. Dim Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Reinhold Geschrieben 25. April 2008 Autor Teilen Geschrieben 25. April 2008 Die User können in Produktion selbst Spalten anlegen? An jeder Versionsverwaltung, Revision etc. vorbei? Ich würd mal sagen, das ist dann dein größtes Problem und sollte angegangen werden. Moin, mag sein dass das ein Problem ist und mir ist auch nicht wirklich wohl dabei, Aber wie dem auch sei, diese Anwendung ist nicht von mir und von mir in dieser Hinsicht auch nicht beeinflussbar. Ich werde also wohl damit leben müssen. Danke für deine Hinweise. Reinhold Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.