Zum Inhalt springen

MS-SQL-Server: Trigger mit dynamischem SQL


Reinhold

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...